[PATCH v3 00/27] Clean up update-refs --stdin and implement ref_transaction
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Apr 7, 2014, 13:47 UTC
- Message-ID
- <1396878498-19887-1-git-send-email-mhagger@alum.mit.edu>
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 placeDocumentation/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