Re: [PATCH/RFC v3 4/9] unlink_entry(): introduce schedule_dir_for_removal()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 4, 2009, 20:54 UTC
- Message-ID
- <7vmyd1orcq.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <5e00462034e14b628ad6744edc1fad7daee78c5c.1233751281.git.barvik@broadpark.no>
Kjetil Barvik <barvik@broadpark.no> writes:
> Since the unlink_entry() function is called with alphabetically sorted > names, this new function end up being very effective to avoid > unnecessary calls to rmdir(). In some cases over 95% of all calls to > rmdir() is removed with this patch.
I first feared that this will badly break D/F conflicting cases where we remove a file D/F that is the last remaining file in directory D and rely on the successful removal of the directory to create a file D, but the check_updates() function already is structured to allow this late removal easily.
I think the patch is sensible modulo minor nits.
* The new global path_buf/path_len in unpack-trees.c are named too generic. It is not just a buffer anybody can use for anything, but is used to keep track for a specific purpose of doing something, so please name them after that something.
* "#define ALL_DIRS 0" is useless, given the way how the parameter to do_remove_scheduled_dirs() is named;