Hi Folks, Here is the second revision of a series to support locking multiple refs at the same time to update all of them consistently. The first series can be found at $gmane/233260. This revision is ready to consider for integration.
Updates since the previous revision of the series: * Incorporated style fixes and cleanups suggested by Junio. * In patch 6, the new update_refs function now sorts the updates so that locks are acquired in a consistent order by competing processes. Then it uses a simple linear scan to reject input containing duplicate refs (which are adjacent after sorting). Also, struct ref_update now has a symmetric representation for new_sha1 and old_sha1. * In patch 7, I propose a new format for instructions read from standard input that is much more robust and extensible. * Patch 8 is new and adds test cases covering new features and error cases. -Brad Brad King (8): reset: rename update_refs to reset_refs refs: report ref type from lock_any_ref_for_update refs: factor update_ref steps into helpers refs: factor delete_ref loose ref step into a helper refs: add function to repack without multiple refs refs: add update_refs for multiple simultaneous updates update-ref: support multiple simultaneous updates update-ref: add test cases covering --stdin signature Documentation/git-update-ref.txt | 21 +++- branch.c | 2 +- builtin/commit.c | 2 +- builtin/fetch.c | 3 +- builtin/receive-pack.c | 3 +- builtin/reflog.c | 2 +- builtin/replace.c | 2 +- builtin/reset.c | 4 +- builtin/tag.c | 2 +- builtin/update-ref.c | 121 +++++++++++++++++++++- fast-import.c | 2 +- refs.c | 203 +++++++++++++++++++++++++++++++++---- refs.h | 16 ++- sequencer.c | 3 +- t/t1400-update-ref.sh | 206 ++++++++++++++++++++++++++++++++++++++ 15 files changed, 558 insertions(+), 34 deletions(-) -- 220.127.116.11 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html