This is v2 of the patch series, with only minor changes from v1 [1]. Thanks to Stefan Beller and Junio for their feedback about v1. I think I have addressed all of the points that were raised. Changes since v1: * Rebased onto new upstream master (because it now includes the dependencies, mh/reflog-expire and sb/atomic-push). The rebase was conflict-free. * Tweaked some commit messages and added some Reviewed-by lines. * Patch 06/11: Remove copyright line from t7516. Use write_script function to write the fake editor. * Patch 12/11: New commit: consolidate comments for the four reference transaction update functions. This branch is also available in my GitHub account [2] as branch "refs-have-new". Michael [1] http://thread.gmane.org/gmane.comp.version-control.git/263522 [2] https://github.com/mhagger/git Michael Haggerty (12): refs: move REF_DELETING to refs.c refs: remove the gap in the REF_* constant values struct ref_update: move "have_old" into "flags" ref_transaction_update(): remove "have_old" parameter ref_transaction_delete(): remove "have_old" parameter commit: add tests of commit races commit: avoid race when creating orphan commits ref_transaction_create(): check that new_sha1 is valid ref_transaction_delete(): check that old_sha1 is not null_sha1 ref_transaction_verify(): new function to check a reference's value update_ref(): improve documentation refs.h: Remove duplication in function docstrings branch.c | 5 +- builtin/commit.c | 4 +- builtin/fetch.c | 6 ++- builtin/receive-pack.c | 5 +- builtin/replace.c | 2 +- builtin/tag.c | 2 +- builtin/update-ref.c | 17 +++---- fast-import.c | 6 +-- refs.c | 130 +++++++++++++++++++++++++++++++++--------------- refs.h | 111 ++++++++++++++++++++++++++++------------- sequencer.c | 2 +- t/t7516-commit-races.sh | 33 ++++++++++++ walker.c | 2 +- 13 files changed, 227 insertions(+), 98 deletions(-) create mode 100755 t/t7516-commit-races.sh -- 2.1.4 -- 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