git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/15] ref-transactions for reflogs
@ 2014-07-23 17:03 Ronnie Sahlberg
  2014-07-23 17:03 ` [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update Ronnie Sahlberg
                   ` (15 more replies)
  0 siblings, 16 replies; 20+ messages in thread
From: Ronnie Sahlberg @ 2014-07-23 17:03 UTC (permalink / raw)
  To: git; +Cc: gitster, Ronnie Sahlberg

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@pobox.com>
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

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [PATCH 00/15] ref-transactions-reflog
@ 2014-10-21 19:24 Ronnie Sahlberg
  2014-10-21 19:24 ` [PATCH 15/15] refs.c: allow deleting refs with a broken sha1 Ronnie Sahlberg
  0 siblings, 1 reply; 20+ messages in thread
From: Ronnie Sahlberg @ 2014-10-21 19:24 UTC (permalink / raw)
  To: git; +Cc: Ronnie Sahlberg

List,

Please find a patch that updates the reflog handling to use transactions.
This patch series has previously been sent to the list but is now rebased on
the current content of next which contains ref changes we depend on in this
series.

This series converts the reflog handling and builtin/reflog.c to use
a transaction for both the ref as well as the reflog updates.
As a side effect of this it simplifies the reflog marshalling code so that we
only have one place where we marshall the entry.
It also means that we can remove several functions from the public api
towards the end of the series since we no longer need those functions.

This series can also be found at
https://github.com/rsahlberg/git/tree/ref-transactions-reflog

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
  copy.c: make copy_fd 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                    |  14 +-
 builtin/branch.c            |   5 +-
 builtin/checkout.c          |   8 +-
 builtin/commit.c            |  10 +-
 builtin/fetch.c             |  12 +-
 builtin/receive-pack.c      |  13 +-
 builtin/reflog.c            |  85 ++++------
 builtin/replace.c           |  10 +-
 builtin/tag.c               |  10 +-
 builtin/update-ref.c        |  26 +--
 cache.h                     |   7 +
 copy.c                      |  15 +-
 fast-import.c               |  22 +--
 refs.c                      | 401 +++++++++++++++++++++++++++++---------------
 refs.h                      |  87 +++++-----
 sequencer.c                 |  12 +-
 t/t1402-check-ref-format.sh |   8 +
 walker.c                    |  10 +-
 18 files changed, 448 insertions(+), 307 deletions(-)

-- 
2.1.0.rc2.206.gedb03e5

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2014-10-21 19:31 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-23 17:03 [PATCH 00/15] ref-transactions for reflogs Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update Ronnie Sahlberg
2014-07-23 23:07   ` Junio C Hamano
2014-07-23 17:03 ` [PATCH 02/15] refs.c: make ref_transaction_delete a wrapper for ref_transaction_update Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 03/15] refs.c: rename the transaction functions Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 04/15] refs.c: add a new update_type field to ref_update Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 05/15] refs.c: add a function to append a reflog entry to a fd Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 06/15] lockfile.c: make hold_lock_file_for_append preserve meaningful errno Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 07/15] refs.c: add a transaction function to append a reflog entry Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 08/15] refs.c: add a flag to allow reflog updates to truncate the log Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 09/15] refs.c: only write reflog update if msg is non-NULL Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 10/15] refs.c: allow multiple reflog updates during a single transaction Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 11/15] reflog.c: use a reflog transaction when writing during expire Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 12/15] refs.c: rename log_ref_setup to create_reflog Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 13/15] refs.c: make unlock_ref/close_ref/commit_ref static Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 14/15] refs.c: remove lock_any_ref_for_update Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 15/15] refs.c: allow deleting refs with a broken sha1 Ronnie Sahlberg
2014-07-23 21:22   ` Eric Sunshine
2014-07-23 23:11 ` [PATCH 00/15] ref-transactions for reflogs Junio C Hamano
  -- strict thread matches above, loose matches on Subject: below --
2014-10-21 19:24 [PATCH 00/15] ref-transactions-reflog Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 15/15] refs.c: allow deleting refs with a broken sha1 Ronnie Sahlberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).