summaryrefslogtreecommitdiff
path: root/git-merge.sh
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-09-28 23:29:11 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-09-28 23:29:11 (GMT)
commit60fa056052b8233c22098a711ab780679d0c5b7e (patch)
tree3e0a3b493fafb907d29fefb34d8debbba8122e5f /git-merge.sh
parent05dd8e2ee2ecba1b4ef1dbbde5c81281152604b4 (diff)
downloadgit-60fa056052b8233c22098a711ab780679d0c5b7e.zip
git-60fa056052b8233c22098a711ab780679d0c5b7e.tar.gz
git-60fa056052b8233c22098a711ab780679d0c5b7e.tar.bz2
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 <junkio@cox.net>
Diffstat (limited to 'git-merge.sh')
-rwxr-xr-xgit-merge.sh11
1 files changed, 4 insertions, 7 deletions
diff --git a/git-merge.sh b/git-merge.sh
index 7607e81..5890c7b 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
?*' '?*)