From: Junio C Hamano Date: Sun, 17 Dec 2006 09:09:41 +0000 (-0800) Subject: git-add: remove conflicting entry when adding. X-Git-Tag: v1.5.0-rc0~90 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=c33ab0dd100d91d417b5ed3378acbf3310c07cec;p=git.git git-add: remove conflicting entry when adding. When replacing an existing file A with a directory A that has a file A/B in it in the index, 'git add' did not succeed because it forgot to pass the allow-replace flag to add_cache_entry(). It might be safer to leave this as an error and require the user to explicitly remove the existing A first before adding A/B since it is an unusual case, but doing that automatically is much easier to use. Signed-off-by: Junio C Hamano --- diff --git a/read-cache.c b/read-cache.c index a602010a6..983e68b89 100644 --- a/read-cache.c +++ b/read-cache.c @@ -358,7 +358,7 @@ int add_file_to_index(const char *path, int verbose) if (index_path(ce->sha1, path, &st, 1)) die("unable to index file %s", path); - if (add_cache_entry(ce, ADD_CACHE_OK_TO_ADD)) + if (add_cache_entry(ce, ADD_CACHE_OK_TO_ADD|ADD_CACHE_OK_TO_REPLACE)) die("unable to add %s to index",path); if (verbose) printf("add '%s'\n", path);