Re: [PATCH v2 04/12] refs: implement simple transactions for the packed-refs file
From: Jeff King <hidden>
Date: 2016-06-15 22:57:51
On Thu, Jun 20, 2013 at 08:03:43PM +0200, Michael Haggerty wrote:
quoted
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