Re: [PATCH v2 04/12] refs: implement simple transactions for the packed-refs file
- From
Jeff King <peff@peff.net>
- Date
- Jun 20, 2013, 19:55 UTC
- Message-ID
- <20130620195526.GA31364@sigill.intra.peff.net>
- In-Reply-To
- <51C343FF.6030002@alum.mit.edu>
On Thu, Jun 20, 2013 at 08:03:43PM +0200, Michael Haggerty wrote:
Show 14 quoted lines
> > I noticed that recently, too. I have a patch series about 90% complete > > that abstracts the tempfile handling (the ultimate goal of which is to > > optionally clean up tmp_* files in the objects/ directory). It refactors > > the lockfile cleanup, and it would not be too hard to have a committed > > or rolled-back lockfile actually remove itself from the "to clean at > > exit" list. > > > > Which would make it perfectly safe to have a lockfile as an automatic > > variable as long as you commit or rollback before leaving the function. > > Cool, then I won't work on that. You might also have to make the > lockfile list into a doubly-linked-list to avoid having to do a linear > scan to find the entry to delete, unless the total number of entries is > known to remain small.
Yes, I noticed that potential issue, but I don't think it is worth worrying about. We typically only take one lock at a time, or a handful of tempfiles (e.g., one object at a time, or two files for diff).
And once it's abstracted out, it would be easy to handle later.
The part I am a little stuck on is plugging it into pack-objects/index-pack. Their output handling is a little convoluted because they may be writing to stdout, to a tempfile, to a named file, or even appending to an existing file in the case of index-pack --fix-thin. I don't think it's unmanageable, but I need to spend some more time on the refactoring.
> Please CC me on the patch series when it is done.
Will do.
-Peff