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>
This commit is contained in:
11
git-merge.sh
11
git-merge.sh
@ -24,7 +24,9 @@ dropsave() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
savestate() {
|
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() {
|
restorestate() {
|
||||||
@ -149,12 +151,7 @@ esac
|
|||||||
# we use, it would operate on the index, possibly affecting the
|
# we use, it would operate on the index, possibly affecting the
|
||||||
# working tree, and when resolved cleanly, have the desired tree
|
# working tree, and when resolved cleanly, have the desired tree
|
||||||
# in the index -- this means that the index must be in sync with
|
# in the index -- this means that the index must be in sync with
|
||||||
# the $head commit.
|
# the $head commit. The strategies are responsible to ensure this.
|
||||||
files=$(git-diff-index --cached --name-only $head) || exit
|
|
||||||
if [ "$files" ]; then
|
|
||||||
echo >&2 "Dirty index: cannot merge (dirty: $files)"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$use_strategies" in
|
case "$use_strategies" in
|
||||||
?*' '?*)
|
?*' '?*)
|
||||||
|
Reference in New Issue
Block a user