Subject: Re: [PATCH/RFC v3 4/9] unlink_entry(): introduce schedule_dir_for_removal()

From: Junio C Hamano <[email-masked]>
Date: Wed, 04 Feb 2009 12:55:24 -0800

Kjetil Barvik <[email-masked]> 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;