summaryrefslogtreecommitdiff
path: root/git-merge-one-file.sh
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2006-11-07 15:41:34 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2006-11-07 15:41:34 -0800
commitd0a75a179e0e872c47d4a25350565a8c7c04dd0b (patch)
tree1614178fdd3c8477f762e4657a82334a23dbb17b /git-merge-one-file.sh
parentMerge branch 'np/index-pack' (diff)
parentt6022: ignoring untracked files by merge-recursive when they do not matter (diff)
downloadtgif-d0a75a179e0e872c47d4a25350565a8c7c04dd0b.tar.xz
Merge branch 'jc/read-tree'
* jc/read-tree: t6022: ignoring untracked files by merge-recursive when they do not matter merge-recursive: adjust to loosened "working file clobbered" check merge-recursive: make a few functions static. merge-recursive: use abbreviated commit object name. merge: loosen overcautious "working file will be lost" check.
Diffstat (limited to 'git-merge-one-file.sh')
-rwxr-xr-xgit-merge-one-file.sh16
1 files changed, 15 insertions, 1 deletions
diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh
index fba4b0cb5f..c49e4c65af 100755
--- a/git-merge-one-file.sh
+++ b/git-merge-one-file.sh
@@ -23,6 +23,12 @@ case "${1:-.}${2:-.}${3:-.}" in
"$1.." | "$1.$1" | "$1$1.")
if [ "$2" ]; then
echo "Removing $4"
+ else
+ # read-tree checked that index matches HEAD already,
+ # so we know we do not have this path tracked.
+ # there may be an unrelated working tree file here,
+ # which we should just leave unmolested.
+ exit 0
fi
if test -f "$4"; then
rm -f -- "$4" &&
@@ -34,8 +40,16 @@ case "${1:-.}${2:-.}${3:-.}" in
#
# Added in one.
#
-".$2." | "..$3" )
+".$2.")
+ # the other side did not add and we added so there is nothing
+ # to be done.
+ ;;
+"..$3")
echo "Adding $4"
+ test -f "$4" || {
+ echo "ERROR: untracked $4 is overwritten by the merge."
+ exit 1
+ }
git-update-index --add --cacheinfo "$6$7" "$2$3" "$4" &&
exec git-checkout-index -u -f -- "$4"
;;