Introduce remove_or_warn function
This patch introduces the remove_or_warn function which is a generalised version of the {unlink,rmdir}_or_warn functions. It takes an additional parameter indicating the mode of the file to be removed. The patch also modifies certain functions to use remove_or_warn where appropriate, and adds a test case for a bug fixed by the use of remove_or_warn. Signed-off-by: Peter Collingbourne <peter@pcc.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
d1723296af
commit
80d706afed
@ -67,16 +67,8 @@ static void unlink_entry(struct cache_entry *ce)
|
||||
{
|
||||
if (has_symlink_or_noent_leading_path(ce->name, ce_namelen(ce)))
|
||||
return;
|
||||
if (S_ISGITLINK(ce->ce_mode)) {
|
||||
if (rmdir(ce->name)) {
|
||||
warning("unable to rmdir %s: %s",
|
||||
ce->name, strerror(errno));
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (unlink_or_warn(ce->name))
|
||||
return;
|
||||
if (remove_or_warn(ce->ce_mode, ce->name))
|
||||
return;
|
||||
schedule_dir_for_removal(ce->name, ce_namelen(ce));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user