summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-05-07 21:55:21 -0700
committerJunio C Hamano <junkio@cox.net>2005-05-07 21:55:21 -0700
commit192268c197c0f143989662f648b1d900014e7d89 (patch)
tree54db11a2f64efe7aba6cdedba4398f7228f6c646 /cache.h
parent0f1e4f04013fec0ba8a51a93fc5d3ec6df706168 (diff)
downloadgit-192268c197c0f143989662f648b1d900014e7d89.tar.gz
Add git-update-cache --replace option.
When "path" exists as a file or a symlink in the index, an attempt to add "path/file" is refused because it results in file vs directory conflict. Similarly when "path/file1", "path/file2", etc. exist, an attempt to add "path" as a file or a symlink is refused. With git-update-cache --replace, these existing entries that conflict with the entry being added are automatically removed from the cache, with warning messages. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/cache.h b/cache.h
index 314ee0dd0f..7a656c70d3 100644
--- a/cache.h
+++ b/cache.h
@@ -116,7 +116,9 @@ unsigned int active_nr, active_alloc, active_cache_changed;
extern int read_cache(void);
extern int write_cache(int newfd, struct cache_entry **cache, int entries);
extern int cache_name_pos(const char *name, int namelen);
-extern int add_cache_entry(struct cache_entry *ce, int ok_to_add);
+#define ADD_CACHE_OK_TO_ADD 1 /* Ok to add */
+#define ADD_CACHE_OK_TO_REPLACE 2 /* Ok to replace file/directory */
+extern int add_cache_entry(struct cache_entry *ce, int option);
extern int remove_entry_at(int pos);
extern int remove_file_from_cache(char *path);
extern int same_name(struct cache_entry *a, struct cache_entry *b);