git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/13] Use ref transactions from most callers
@ 2014-04-21 22:53 Ronnie Sahlberg
  2014-04-21 22:53 ` [PATCH v2 01/13] refs.c: constify the sha arguments for ref_transaction_create|delete|update Ronnie Sahlberg
                   ` (13 more replies)
  0 siblings, 14 replies; 19+ messages in thread
From: Ronnie Sahlberg @ 2014-04-21 22:53 UTC (permalink / raw)
  To: git; +Cc: mhagger, Ronnie Sahlberg

This patch series changes most of the places where the ref functions for
locking and writing refs to instead use the new ref transaction API. There
are still three more places where write_ref_sha1() is called from outside
of refs.c but those all will require more complex work and review so those
changes belong in a different patch series.

Version 2:
 - Add a patch to ref_transaction_commit to make it honor onerr even if the
   error triggered in ref_Transaction_commit itself rather than in a call
   to other functions (that already honor onerr).
 - Add a patch to make the update_ref() helper function use transactions
   internally.
 - Change ref_transaction_update to die() instead of error() if we pass
   if a NULL old_sha1 but have have_old == true.
 - Change ref_transaction_create to die() instead of error() if new_sha1
   is false but we pass it a null_sha1.
 - Change ref_transaction_delete die() instead of error() if we pass
   if a NULL old_sha1 but have have_old == true.
 - Change several places to do  if(!transaction || ref_transaction_update()
   || ref_Transaction_commit()) die(generic-message) instead of checking each
   step separately and having a different message for each failure.
   Most users are likely not interested in what step of the transaction
   failed and only whether it failed or not.
 - Change commit.c to only pass a pointer to ref_transaction_update
   iff current_head is non-NULL.
   The previous patch used to compute a garbage pointer for
   current_head->object.sha1 and relied on the fact that ref_transaction_update
   would not try to dereference this pointer if !!current_head was 0.
 - Updated commit message for the walker_fetch change to try to justify why
   the change in locking semantics should not be harmful.


Ronnie Sahlberg (13):
  refs.c: constify the sha arguments for
    ref_transaction_create|delete|update
  refs.c: use a single exit path from transaction commit and handle
    onerr
  refs.c: change ref_transaction_update() to do error checking and
    return status
  refs.c: change ref_transaction_create to do error checking and return
    status
  refs.c: ref_transaction_delete to check for error and return status
  tag.c: use ref transactions when doing updates
  replace.c: use the ref transaction functions for updates
  commit.c: use ref transactions for updates
  sequencer.c: use ref transactions for all ref updates
  fast-import.c: change update_branch to use ref transactions
  branch.c: use ref transaction for all ref updates
  walker.c: use ref transaction for ref updates
  refs.c: change update_ref to use a transaction

 branch.c             | 16 ++++++----
 builtin/commit.c     | 23 +++++++-------
 builtin/replace.c    | 13 ++++----
 builtin/tag.c        | 11 +++----
 builtin/update-ref.c | 19 +++++++-----
 fast-import.c        | 23 +++++++++-----
 refs.c               | 84 +++++++++++++++++++++++++++++++++++++++-------------
 refs.h               | 25 ++++++++--------
 sequencer.c          | 17 ++++++++---
 walker.c             | 45 +++++++++++++---------------
 10 files changed, 172 insertions(+), 104 deletions(-)

-- 
1.9.1.515.g3b87021

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

end of thread, other threads:[~2014-04-22 22:46 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-21 22:53 [PATCH v2 00/13] Use ref transactions from most callers Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 01/13] refs.c: constify the sha arguments for ref_transaction_create|delete|update Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 02/13] refs.c: use a single exit path from transaction commit and handle onerr Ronnie Sahlberg
2014-04-22 19:11   ` Junio C Hamano
2014-04-22 22:46     ` Ronnie Sahlberg
2014-04-22 19:14   ` Junio C Hamano
2014-04-21 22:53 ` [PATCH v2 03/13] refs.c: change ref_transaction_update() to do error checking and return status Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 04/13] refs.c: change ref_transaction_create " Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 05/13] refs.c: ref_transaction_delete to check for error " Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 06/13] tag.c: use ref transactions when doing updates Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 07/13] replace.c: use the ref transaction functions for updates Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 08/13] commit.c: use ref transactions " Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 09/13] sequencer.c: use ref transactions for all ref updates Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 10/13] fast-import.c: change update_branch to use ref transactions Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 11/13] branch.c: use ref transaction for all ref updates Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 12/13] walker.c: use ref transaction for " Ronnie Sahlberg
2014-04-21 22:53 ` [PATCH v2 13/13] refs.c: change update_ref to use a transaction Ronnie Sahlberg
2014-04-22 19:34 ` [PATCH v2 00/13] Use ref transactions from most callers Junio C Hamano
2014-04-22 22:43   ` 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).