From 29dc13319883f97618de6f03e8ffc5dc810d8786 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 17 Mar 2008 16:47:18 -0700 Subject: git-merge-one-file: fix longstanding stupid thinko When a merge result creates a new file, and when our side already has a file in the path, taking the merge result may clobber the untracked file. However, the logic to detect this situation was totally the wrong way. We should complain when the file exists, not when the file does not exist. Signed-off-by: Junio C Hamano --- git-merge-one-file.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'git-merge-one-file.sh') diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh index 9ee3f80452..e1eb963266 100755 --- a/git-merge-one-file.sh +++ b/git-merge-one-file.sh @@ -48,10 +48,11 @@ case "${1:-.}${2:-.}${3:-.}" in ;; "..$3") echo "Adding $4" - test -f "$4" || { + if test -f "$4" + then echo "ERROR: untracked $4 is overwritten by the merge." exit 1 - } + fi git update-index --add --cacheinfo "$7" "$3" "$4" && exec git checkout-index -u -f -- "$4" ;; -- cgit v1.2.3