Johannes Sixt <j6t@xxxxxxxx> wrote on 06.03.2012 19:32:41: > Am 06.03.2012 10:18, schrieb karsten.blees@xxxxxxx: > > On some systems (e.g. Windows XP), directories cannot be deleted while > > they're open. Both git-prune and git-repack (and thus, git-gc) try to > > rmdir while holding a DIR* handle on the directory, leaving dangling > > empty directories in the .git/objects store. > > > > Fix it by swapping the rmdir / closedir calls. > > The reasoning makes a lot of sense. I wonder why object directories are > pruned nevertheless when I run git gc --prune (I run git master plus a > few topics from pu). > You're right...in upstream git, closedir() is essentially a NOOP. The OS handle is closed in readdir() on reading the last entry. The dirent.c 'improvements' that move FindFirstFile() to opendir() and FindClose() to closedir() are in the msysgit fork only [1] (and entirely my fault, I guess :-)). So this patch actually isn't currently required for Windows XP (probably other platforms, I don't know). [1] https://github.com/msysgit/git/commit/e2b3f70b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html