Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-09-29 03:29:11 +0400
committerJunio C Hamano <junkio@cox.net>2005-09-29 03:29:11 +0400
commit60fa056052b8233c22098a711ab780679d0c5b7e (patch)
tree3e0a3b493fafb907d29fefb34d8debbba8122e5f
parent05dd8e2ee2ecba1b4ef1dbbde5c81281152604b4 (diff)
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>
-rwxr-xr-xgit-merge.sh11
1 files 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
?*' '?*)