Remove empty directories when checking out a commit with fewer submodules
Change the unlink_entry function to use rmdir to remove submodule directories. Currently we try to use unlink, which will never succeed. Of course rmdir will only succeed for empty (i.e. not checked out) submodule directories. Behaviour if a submodule is checked out stays essentially the same: print a warning message and keep the submodule directory. 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
902f235378
commit
c5e558a80a
@ -61,8 +61,16 @@ static void unlink_entry(struct cache_entry *ce)
|
||||
{
|
||||
if (has_symlink_or_noent_leading_path(ce->name, ce_namelen(ce)))
|
||||
return;
|
||||
if (unlink_or_warn(ce->name))
|
||||
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;
|
||||
schedule_dir_for_removal(ce->name, ce_namelen(ce));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user