Charles Bailey <charles@xxxxxxxxxxxxx> writes: > diff --git a/git-mergetool.sh b/git-mergetool.sh > index aefdca7..87fa88a 100755 > --- a/git-mergetool.sh > +++ b/git-mergetool.sh > @@ -13,7 +13,6 @@ SUBDIRECTORY_OK=Yes > OPTIONS_SPEC= > . git-sh-setup > require_work_tree > -prefix=$(git rev-parse --show-prefix) > > # Returns true if the mode reflects a symlink > is_symlink () { > @@ -131,7 +130,7 @@ checkout_staged_file () { > tmpfile=$(expr "$(git checkout-index --temp --stage="$1" "$2")" : '\([^ ]*\) ') > > if test $? -eq 0 -a -n "$tmpfile" ; then > - mv -- "$tmpfile" "$3" > + mv -- "$(git rev-parse --show-cdup)$tmpfile" "$3" > fi > } Looking at the above change together with this disabled patch in the previous, > +# We can't merge files from parent directories when running mergetool > +# from a subdir. Is this a bug? > +# > +#test_expect_failure 'mergetool in subdir' ' > +# cd subdir && ( > +# ( yes "" | git mergetool ../file1 >/dev/null 2>&1 ) && > +# ( yes "" | git mergetool ../file2 >/dev/null 2>&1 ) && > +# test "$(cat ../file1)" = "master updated" && > +# test "$(cat ../file2)" = "master new" && > +# git commit -m "branch1 resolved with mergetool - subdir" ) > +#' I wonder if it would be cleaner to keep $prefix and instead cd_to_toplevel at the beginning. There are two ways for Porcelain scripts to work from inside a subdirectory of a project. * Stay in the original subdirectory and use show-cdup to convert a path that is relative to the repository root to a path relative to your current subdirectory. * Go up to the root of the work tree, use prefix to convert a path that is relative to the original subdirectory to a path relative to the root of the work tree. The former way is probably the clunkier one between the two. I think the latter is how most of the Porcelain scripts work when they need to worry about the Plumbing commands that return/accept repository relative paths. Also, all the plumbing commands work in the latter way. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html