am -3: list the paths that needed 3-way fallback
authorJunio C Hamano <gitster@pobox.com>
Wed, 28 Mar 2012 16:55:21 +0000 (09:55 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 28 Mar 2012 17:20:33 +0000 (10:20 -0700)
When applying a patch that was based on an older release with "am -3", I
often wonder changes to which files need to be reviewed with extra care to
spot mismerges, but there is no good indication.

The paths that needed 3-way fallback can easily be obtained by comparing
the synthesized (partial) base tree and the current HEAD and noticing only
additions and modifications (removals only show the sparseness of the fake
ancestor tree, which is not useful information at all).  List them in the
usual --name-status format.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-am.sh

index 4da0ddafc4bf2029823148e7285085661c134497..e686a17594bfd1b53ae43e2012c2f497c1975fa2 100755 (executable)
--- a/git-am.sh
+++ b/git-am.sh
@@ -138,6 +138,12 @@ fall_back_3way () {
     say Using index info to reconstruct a base tree...
 
     cmd='GIT_INDEX_FILE="$dotest/patch-merge-tmp-index"'
+
+    if test -z "$GIT_QUIET"
+    then
+       eval "$cmd git diff-index --cached --diff-filter=AM --name-status HEAD"
+    fi
+
     cmd="$cmd git apply --cached $git_apply_opt"' <"$dotest/patch"'
     if eval "$cmd"
     then