"Shawn O. Pearce" <spearce@xxxxxxxxxxx> writes: > Jeremy Maitin-Shepard <jbms@xxxxxxx> wrote: >> It is extremely cumbersome to have to worry about whether there are >> other concurrent accesses to the repository when running e.g. git gc. >> For servers, you may never be able to guarantee that nothing else is >> accessing the repository concurrently. Here is a possible solution: >> >> Each git process creates a log file of the references that it has >> created. The log file should be named in some way with e.g. the process >> id and start time of the process, and simply consist of a list of >> 20-byte sha1 hashes to be considered additional in-use references for >> the purpose of garbage collection. How would that solve the issue that you should not prune/gc the repository "clone --shared" aka "alternates" borrows from? By the way, I do not think your "git-commit stopped for two weeks due to a long editing session of the commit message" should result in any object lossage, as the new objects are all reachable from the index, and the new tree nor the new commit hasn't been built while you are typing (rather, not typing) the log message. Hmm, a partial commit that uses a temporary index file may lose, come to think of it. Perhaps we should teach reachable.c about the temporary index file as well. I dunno. -- 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