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 <gitster@pobox.com>
This commit is contained in:
Junio C Hamano
2008-03-17 16:47:18 -07:00
parent deda26b993
commit 29dc133198
2 changed files with 49 additions and 2 deletions

View File

@@ -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"
;;