threads / discuss / 23642

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

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

## tl;dr

One message between Apr 29, 2010 and Apr 29, 2010.

replies: 0people: 1as markdown or json

Sitaram Chamarty· Apr 29, 2010, 12:13 UTC · lore

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

← back to recent threads