From 60fa056052b8233c22098a711ab780679d0c5b7e Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 28 Sep 2005 16:29:11 -0700 Subject: [PATCH] Fastpath the normal case by not checking that index matches HEAD. The merge strategy would check this itself and typically does it by using git-read-tree -m -u 3-way merge. Signed-off-by: Junio C Hamano --- git-merge.sh | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/git-merge.sh b/git-merge.sh index 7607e819c3..5890c7b1c0 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -24,7 +24,9 @@ dropsave() { } savestate() { - git diff -r -z --name-only $head | cpio -0 -o >"$GIR_DIR/MERGE_SAVE" + # Stash away any local modifications. + git-diff-index -r -z --name-only $head | + cpio -0 -o >"$GIR_DIR/MERGE_SAVE" } restorestate() { @@ -149,12 +151,7 @@ esac # we use, it would operate on the index, possibly affecting the # working tree, and when resolved cleanly, have the desired tree # in the index -- this means that the index must be in sync with -# the $head commit. -files=$(git-diff-index --cached --name-only $head) || exit -if [ "$files" ]; then - echo >&2 "Dirty index: cannot merge (dirty: $files)" - exit 1 -fi +# the $head commit. The strategies are responsible to ensure this. case "$use_strategies" in ?*' '?*) -- 2.11.4.GIT