From: Junio C Hamano Date: Wed, 28 Sep 2005 23:29:11 +0000 (-0700) Subject: Fastpath the normal case by not checking that index matches HEAD. X-Git-Tag: v0.99.8~35 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=60fa056052b8233c22098a711ab780679d0c5b7e;p=git.git 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 --- diff --git a/git-merge.sh b/git-merge.sh index 7607e819..5890c7b1 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 ?*' '?*)