List, Jun, This is the next patch series for ref-transactions. It is also available at https://github.com/rsahlberg/git/tree/ref-transactions-reflog and is the same patch series that has been posted previously with one exception: This series now contains an additional patch that fixes ref handling of broken refs. This patch allows a user to delete a ref that can not be resolved and contains a broken SHA1. The main part of the patch series is to refactor the reflog handling to use transactions and eventually leads up to : * only a single place in the code where we marshall the reflog text line * atomic transaction for reflog.c for performing the reflog expire operation. This series is based on and builds on the previous series that is now in origin/pu: === commit c52f85eb59d26a7036d2149bc5b4347d0ecbbbeb Merge: 44fc7ba 282edb2 Author: Junio C Hamano <gitster@xxxxxxxxx> Date: Mon Jul 21 12:35:51 2014 -0700 Merge branch 'rs/ref-transaction' into jch * rs/ref-transaction: refs.c: fix handling of badly named refs refs.c: make write_ref_sha1 static fetch.c: change s_update_ref to use a ref transaction refs.c: propagate any errno==ENOTDIR from _commit back to the callers refs.c: pass a skip list to name_conflict_fn refs.c: call lock_ref_sha1_basic directly from commit refs.c: move the check for valid refname to lock_ref_sha1_basic refs.c: pass NULL as *flags to read_ref_full refs.c: pass the ref log message to _create/delete/update instead of _commit refs.c: add an err argument to delete_ref_loose wrapper.c: add a new function unlink_or_msg wrapper.c: simplify warn_if_unremovable === Ronnie Sahlberg (15): refs.c make ref_transaction_create a wrapper to ref_transaction_update refs.c: make ref_transaction_delete a wrapper for ref_transaction_update refs.c: rename the transaction functions refs.c: add a new update_type field to ref_update refs.c: add a function to append a reflog entry to a fd lockfile.c: make hold_lock_file_for_append preserve meaningful errno refs.c: add a transaction function to append a reflog entry refs.c: add a flag to allow reflog updates to truncate the log refs.c: only write reflog update if msg is non-NULL refs.c: allow multiple reflog updates during a single transaction reflog.c: use a reflog transaction when writing during expire refs.c: rename log_ref_setup to create_reflog refs.c: make unlock_ref/close_ref/commit_ref static refs.c: remove lock_any_ref_for_update refs.c: allow deleting refs with a broken sha1 branch.c | 11 +- builtin/branch.c | 6 +- builtin/checkout.c | 8 +- builtin/commit.c | 14 +- builtin/fetch.c | 12 +- builtin/receive-pack.c | 14 +- builtin/reflog.c | 84 +++++------ builtin/replace.c | 10 +- builtin/tag.c | 10 +- builtin/update-ref.c | 22 +-- copy.c | 20 ++- fast-import.c | 22 +-- lockfile.c | 7 +- refs.c | 392 ++++++++++++++++++++++++++++++++++--------------- refs.h | 110 +++++++------- sequencer.c | 14 +- walker.c | 16 +- 17 files changed, 461 insertions(+), 311 deletions(-) -- 2.0.1.508.g763ab16 -- 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