Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > The problem lies deeper, much deeper... > ... but it bought us many, many problems. I think you are making a mountain out of molehill here. This looks like as an opposite problem of a bug that forgets to prepend the prefix to relative pathnames given by the end user. I do agree that some calling scripts may find it more convenient if the output were relative to their current directory, and in that sense, this is worth addressing. However. How long has "rev-parse --git-path" been around? Had scripts in the wild chance to learn to live with the "output is relative to the top of the working tree" reality? I think the answers are "since 2.5" and "yes". I do not think we can make this unconditionally without breaking users. We instead need something like a new "--git-path-relative" option, similar in the spirit that output from "git diff" can be made relative to the current directory with the "--relative" option. Assuming that we are discussing the new behaviour that is conditionally triggered, let's see the implementation. > - puts(git_path("%s", argv[i + 1])); > + path = git_path("%s", argv[i + 1]); > + if (prefix && !is_absolute_path(path)) > + path = real_path(path); > + puts(path); Duy, want to help me out here? I am wondering if using a logic similar to what is used by "cd t && git grep -e foo :/" to emit paths as "../Documentation/CodingGuidelines" as relative to the current working directory is more appropriate than forcing the absolute path output here (and if so, it may be preferrable to use the relative_path() helper to do so), or the paths to files in $GIT_DIR are conceptually different enough from paths to files in the working tree and it will be more robust to have the output as an absolute path. I am leaning toward the latter (i.e. the above use of real_path() is simple and good), but I haven't thought things through and since we have an area expert here in the thread...