On Fri, Apr 01, 2011 at 02:39:21PM -0700, Junio C Hamano wrote: > Johan Herland <johan@xxxxxxxxxxx> writes: > > > While pushing to a remote repo, Git transiently adds a .keep file for the > > pack being pushed, to protect it from a concurrent "git gc". However, the > > permissions on this .keep file are such that if a different user attempts > > a local cross-filesystem clone ("git clone --no-hardlinks") on the server > > while the .keep file is present (either because of a concurrent push, or > > because of a prior failed push that left a stale .keep file), the clone > > will fail because the second user cannot access the .keep file created by > > the first user. > > While I am not sure if letting a clone proceed while there is a concurrent > push is even a good idea to begin with, I agree that a stale .keep file is > a problem. > > I am kind of surprised that we are not using atexit(3) to clean them just > like we do for lockfiles; wouldn't that be a better solution? We definitely should do that, but it would also be nice if a power failure, kill -9, or segfault in receive-pack didn't leave a repo unusable. -Peff -- 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