git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Sitaram Chamarty <sitaramc@gmail.com>
Date
Apr 29, 2010, 12:13 UTC
Message-ID
<r2k2e24e5b91004290513j4e5e2ebm1163a5c8fa1fdf8d@mail.gmail.com>

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
Message 1 of 1 in “seeing a combined diff (no-conflict files) before committing a merge”
  1. Sitaram ChamartyApr 29, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.