seeing a combined diff (no-conflict files) before committing a merge

From: Sitaram Chamarty <hidden>
Date: 2016-06-15 22:48:43

I saw the thread at
http://kerneltrap.org/mailarchive/git/2010/3/18/25850, but there
doesn't seem to have been any resolution or further discussion.

I am thinking of two possible solutions:

(1) is there a way we can "simulate" a conflict by putting back stage
1/2/3 files, for a successfully merged file, into the index so "git
diff" will work

(2) is there some way to just pass along 3 files names (parent1,
parent2, and merged) and it would show the combined diff output.

Of course, I came up with this shell script (see below sig), but is
there a better way?  It seems like a horrible kludge!

Thanks,

-- 
Sitaram


#!/bin/bash

export TEMPDIR=$(mktemp -d)
trap "/bin/rm -rf $TEMPDIR" 0
export GIT_INDEX_FILE=$TEMPDIR/index

[[ -n $1                ]] || { echo I need a filename;    exit 1; }
[[ -f $1                ]] || { echo I need a filename;    exit 1; }
[[ -f .git/MERGE_HEAD   ]] || { echo no MERGE_HEAD;        exit 1; }
[[ -f .git/ORIG_HEAD    ]] || { echo no ORIG_HEAD;         exit 1; }

git add $1
fake_commit=$(echo fake commit to view combined diff of $1 | git
commit-tree $(git write-tree) -p ORIG_HEAD -p MERGE_HEAD)
git log -p -c -1 $fake_commit -- $1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help