Nice. Once this is in I can add transactional support to receive-pack. On Mon, Apr 7, 2014 at 6:47 AM, Michael Haggerty <mhagger@xxxxxxxxxxxx> wrote: > Here is v3. It is also available on GitHub [1]. > > Thanks to Junio and Brad for their comments about v2. I think I have > addressed all of your comments (except for Junio's regrets that the > series didn't include a transactional receive-pack). > > See the mailing list threads about v1 [2] and v2 [3] and the > longer-term goals of this campaign [4]. > > Changes since v2: > > * Rebased to current master (there were no conflicts) > > * Don't allow ref_transation_create() with new_sha1 set to zeros. > > * Don't allow ref_transation_delete() with old_sha1 set to zeros. > > * Fixed subject lines to use lower-case after the colon. > > * Expanded a few commit messages, fixed a comment, and removed some > "squash" detritus in a commit message. > > Cheers, > Michael > > [1] https://github.com/mhagger/git, branch ref-transactions > [2] http://thread.gmane.org/gmane.comp.version-control.git/243731 > [3] http://thread.gmane.org/gmane.comp.version-control.git/244857 > [4] http://article.gmane.org/gmane.comp.version-control.git/243726 > > Michael Haggerty (27): > t1400: fix name and expected result of one test > t1400: provide more usual input to the command > parse_arg(): really test that argument is properly terminated > t1400: add some more tests involving quoted arguments > refs.h: rename the action_on_err constants > update_refs(): fix constness > update-ref --stdin: read the whole input at once > parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> > twice > update-ref.c: extract a new function, parse_refname() > update-ref --stdin: improve error messages for invalid values > update-ref --stdin: make error messages more consistent > update-ref --stdin: simplify error messages for missing oldvalues > t1400: test that stdin -z update treats empty <newvalue> as zeros > update-ref.c: extract a new function, parse_next_sha1() > update-ref --stdin -z: deprecate interpreting the empty string as > zeros > t1400: test one mistake at a time > update-ref --stdin: improve the error message for unexpected EOF > update-ref --stdin: harmonize error messages > refs: add a concept of a reference transaction > update-ref --stdin: reimplement using reference transactions > refs: remove API function update_refs() > struct ref_update: rename field "ref_name" to "refname" > struct ref_update: store refname as a FLEX_ARRAY > ref_transaction_commit(): simplify code using temporary variables > struct ref_update: add a lock field > struct ref_update: add a type field > ref_transaction_commit(): work with transaction->updates in place > > Documentation/git-update-ref.txt | 18 +- > builtin/checkout.c | 2 +- > builtin/clone.c | 9 +- > builtin/merge.c | 6 +- > builtin/notes.c | 6 +- > builtin/reset.c | 6 +- > builtin/update-ref.c | 425 ++++++++++++++++++++------------- > contrib/examples/builtin-fetch--tool.c | 3 +- > notes-cache.c | 2 +- > notes-utils.c | 3 +- > refs.c | 195 +++++++++++---- > refs.h | 94 ++++++-- > t/t1400-update-ref.sh | 100 +++++--- > 13 files changed, 585 insertions(+), 284 deletions(-) > > -- > 1.9.1 > > -- > 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 -- 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