On 03/18/2017 03:03 AM, Nguyễn Thái Ngọc Duy wrote: > safe_create_dir() can do adjust_shared_perm() internally, and init-db > has always created 'refs' in shared mode since the beginning, > af6e277c5e (git-init-db: initialize shared repositories with --shared - > 2005-12-22). So this code looks like extra adjust_shared_perm calls are > unnecessary. > > And they are. But let's see why there are here in the first place. > > This code was added in 6fb5acfd8f (refs: add methods to init refs db - > 2016-09-04). From the diff alone this looks like a faithful refactored > code from init-db.c. But there is a subtle difference: > > Between the safe_create_dir() block and adjust_shared_perm() block in > the old init-db.c, we may copy/recreate directories from the repo > template. So it makes sense that adjust_shared_perm() is re-executed > then to fix potential permission screwups. > > After 6fb5acfd8f, refs dirs are created after template is copied. Nobody > will change directory permission again. So the extra adjust_shared_perm() > is redudant. Delete them. LGTM. Thanks for the careful research. Michael