Commit Diff


commit - 5be7225436bbdaf6f5a21fdec9cce171d89783e2
commit + deeabeae65267b0d9df334c2c3adbd9bcd078d37
blob - 54e235accacaac5767caaa2b55bc299d21a1353e
blob + 74616cf7de8aca867016e3f65161a10c594d7926
--- got/got.c
+++ got/got.c
@@ -1845,7 +1845,18 @@ cmd_log(int argc, char *argv[])
 	if (error != NULL)
 		goto done;
 
-	error = got_repo_map_path(&in_repo_path, repo, path, 1);
+	if (worktree) {
+		const char *prefix = got_worktree_get_path_prefix(worktree);
+		char *p;
+		if (asprintf(&p, "%s%s%s", prefix,
+		    (strcmp(prefix, "/") != 0) ? "/" : "", path) == -1) {
+			error = got_error_from_errno("asprintf");
+			goto done;
+		}
+		error = got_repo_map_path(&in_repo_path, repo, p, 1);
+		free(p);
+	} else
+		error = got_repo_map_path(&in_repo_path, repo, path, 1);
 	if (error != NULL)
 		goto done;
 	if (in_repo_path) {