This is a bit of a crude but really useful shortcut for conflict resolution. The name is bad, but git-merge-* is a different 'namespace', and git-resolve is also taken. And as different conflict resolvers take different options, it may make sense to have git-xxdiff, git-sdiff and git-winmerge at least initially. Signed-off-by: Martin Langhoff <martin@xxxxxxxxxxxxxxx> --- Makefile | 2 +- git-xxdiff.sh | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletions(-) diff --git a/Makefile b/Makefile index 8349e3d..a6f6628 100644 --- a/Makefile +++ b/Makefile @@ -145,7 +145,7 @@ SCRIPT_SH = \ git-applymbox.sh git-applypatch.sh git-am.sh \ git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \ git-merge-resolve.sh git-merge-ours.sh \ - git-lost-found.sh git-quiltimport.sh + git-lost-found.sh git-quiltimport.sh git-xxdiff.sh SCRIPT_PERL = \ git-archimport.perl git-cvsimport.perl git-relink.perl \ diff --git a/git-xxdiff.sh b/git-xxdiff.sh new file mode 100755 index 0000000..d562ab2 --- /dev/null +++ b/git-xxdiff.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +USAGE='<path>' +SUBDIRECTORY_OK=No +. git-sh-setup + +FILE=$1 +MERGE_HEAD=`git rev-parse MERGE_HEAD` + +# Sanity checks +if test ! -n "$FILE" +then + echo Need a path + exit 1 +fi + +if test ! -n "$MERGE_HEAD" +then + echo git-xxdiff is only useful during a merge +fi + +git cat-file blob HEAD:$FILE > $FILE~HEAD +if test $? -gt 0 +then + echo "Error - maybe $FILE is not tracked by git?" + exit +fi +echo Written $FILE~HEAD + +git cat-file blob $MERGE_HEAD:$FILE > $FILE~MERGE_HEAD +if test $? -gt 0 +then + echo "Error - maybe $FILE is not tracked by git?" + exit +fi +echo Written $FILE~MERGE_HEAD + +xxdiff -wbB --show-merged-pane --merged-filename $FILE~merged $FILE~HEAD $FILE~MERGE_HEAD \ No newline at end of file -- 1.4.2.rc2.g1869bc-dirty - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html