Re: git gc & deleted branches
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:35
"Shawn O. Pearce" [off-list ref] writes:
Jeremy Maitin-Shepard [off-list ref] wrote:quoted
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.