Skip to content

Commit 7cef7fa

Browse files
committed
Merge branch 'rh/mergetool-regression-fix'
"git mergetool" without any pathspec on the command line that is run from a subdirectory became no-op in Git v2.11 by mistake, which has been fixed. * rh/mergetool-regression-fix: mergetool: fix running in subdir when rerere enabled mergetool: take the "-O" out of $orderfile t7610: add test case for rerere+mergetool+subdir bug t7610: spell 'git reset --hard' consistently t7610: don't assume the checked-out commit t7610: always work on a test-specific branch t7610: delete some now-unnecessary 'git reset --hard' lines t7610: run 'git reset --hard' after each test to clean up t7610: don't rely on state from previous test t7610: use test_when_finished for cleanup tasks t7610: move setup code to the 'setup' test case t7610: update branch names to match test number rev-parse doc: pass "--" to rev-parse in the --prefix example .mailmap: record canonical email for Richard Hansen
2 parents 1c16df2 + d0e0cfe commit 7cef7fa

4 files changed

Lines changed: 186 additions & 119 deletions

File tree

.mailmap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,8 @@ Philippe Bruhat <book@cpan.org>
192192
Ralf Thielow <ralf.thielow@gmail.com> <ralf.thielow@googlemail.com>
193193
Ramsay Jones <ramsay@ramsayjones.plus.com> <ramsay@ramsay1.demon.co.uk>
194194
René Scharfe <l.s.r@web.de> <rene.scharfe@lsrfire.ath.cx>
195+
Richard Hansen <rhansen@rhansen.org> <hansenr@google.com>
196+
Richard Hansen <rhansen@rhansen.org> <rhansen@bbn.com>
195197
Robert Fitzsimons <robfitz@273k.net>
196198
Robert Shearman <robertshearman@gmail.com> <rob@codeweavers.com>
197199
Robert Zeh <robert.a.zeh@gmail.com>

Documentation/git-rev-parse.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ repository. For example:
9191
----
9292
prefix=$(git rev-parse --show-prefix)
9393
cd "$(git rev-parse --show-toplevel)"
94-
eval "set -- $(git rev-parse --sq --prefix "$prefix" "$@")"
94+
# rev-parse provides the -- needed for 'set'
95+
eval "set $(git rev-parse --sq --prefix "$prefix" -- "$@")"
9596
----
9697

9798
--verify::

git-mergetool.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ main () {
421421
prompt=true
422422
;;
423423
-O*)
424-
orderfile="$1"
424+
orderfile="${1#-O}"
425425
;;
426426
--)
427427
shift
@@ -454,20 +454,33 @@ main () {
454454
merge_keep_backup="$(git config --bool mergetool.keepBackup || echo true)"
455455
merge_keep_temporaries="$(git config --bool mergetool.keepTemporaries || echo false)"
456456

457+
prefix=$(git rev-parse --show-prefix) || exit 1
458+
cd_to_toplevel
459+
460+
if test -n "$orderfile"
461+
then
462+
orderfile=$(
463+
git rev-parse --prefix "$prefix" -- "$orderfile" |
464+
sed -e 1d
465+
)
466+
fi
467+
457468
if test $# -eq 0 && test -e "$GIT_DIR/MERGE_RR"
458469
then
459470
set -- $(git rerere remaining)
460471
if test $# -eq 0
461472
then
462473
print_noop_and_exit
463474
fi
475+
elif test $# -ge 0
476+
then
477+
# rev-parse provides the -- needed for 'set'
478+
eval "set $(git rev-parse --sq --prefix "$prefix" -- "$@")"
464479
fi
465480

466481
files=$(git -c core.quotePath=false \
467482
diff --name-only --diff-filter=U \
468-
${orderfile:+"$orderfile"} -- "$@")
469-
470-
cd_to_toplevel
483+
${orderfile:+"-O$orderfile"} -- "$@")
471484

472485
if test -z "$files"
473486
then

0 commit comments

Comments
 (0)