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>
This commit is contained in:
4
cache.h
4
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);
|
||||
|
Reference in New Issue
Block a user