Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update
Junio C Hamano gits...@pobox.com writes: Ronnie Sahlberg sahlb...@google.com writes: On Thu, Oct 23, 2014 at 10:42 AM, Junio C Hamano gits...@pobox.com wrote: Ronnie Sahlberg sahlb...@google.com writes: Subject: Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update Missing colon after refs.c ... Change-Id: I687dd47cc4f4e06766e8313b4fd1b07cd4a56c1a Please don't leak local housekeeping details into the official history. Ah, Ok. Do you want me to re-send the series with these lines deleted ? When the series is rerolled, I'd like to see these crufts gone. But please do not re-send the series without waiting for further reviews and making necessary updates, if any. Otherwise it will only make extra busywork for you and me. I've read thru 01/15 (i.e. this first series out of the three) and have no further comments so far. There are a few questions I asked that haven't been answered, and hopefully others will help to move this series forward by lending eyeballs further. Thanks. -- 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
Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update
Ronnie Sahlberg sahlb...@google.com writes: Subject: Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update Missing colon after refs.c commit 03001144a015f81db5252005841bb78f57d62774 upstream. Huh? The ref_transaction_update function can already be used to create refs by passing null_sha1 as the old_sha1 parameter. Simplify by replacing transaction_create with a thin wrapper. Nice code reduction. Change-Id: I687dd47cc4f4e06766e8313b4fd1b07cd4a56c1a Please don't leak local housekeeping details into the official history. Signed-off-by: Ronnie Sahlberg sahlb...@google.com Signed-off-by: Jonathan Nieder jrnie...@gmail.com --- refs.c | 27 ++- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/refs.c b/refs.c index 0368ed4..ed0485e 100644 --- a/refs.c +++ b/refs.c @@ -3623,31 +3623,8 @@ int ref_transaction_create(struct ref_transaction *transaction, int flags, const char *msg, struct strbuf *err) { - struct ref_update *update; - - assert(err); - - if (transaction-state != REF_TRANSACTION_OPEN) - die(BUG: create called for transaction that is not open); - - if (!new_sha1 || is_null_sha1(new_sha1)) - die(BUG: create ref with null new_sha1); - - if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) { - strbuf_addf(err, refusing to create ref with bad name %s, - refname); - return -1; - } - - update = add_update(transaction, refname); - - hashcpy(update-new_sha1, new_sha1); - hashclr(update-old_sha1); - update-flags = flags; - update-have_old = 1; - if (msg) - update-msg = xstrdup(msg); - return 0; + return ref_transaction_update(transaction, refname, new_sha1, + null_sha1, flags, 1, msg, err); } int ref_transaction_delete(struct ref_transaction *transaction, -- 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
Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update
On Thu, Oct 23, 2014 at 10:42 AM, Junio C Hamano gits...@pobox.com wrote: Ronnie Sahlberg sahlb...@google.com writes: Subject: Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update Missing colon after refs.c commit 03001144a015f81db5252005841bb78f57d62774 upstream. Huh? The ref_transaction_update function can already be used to create refs by passing null_sha1 as the old_sha1 parameter. Simplify by replacing transaction_create with a thin wrapper. Nice code reduction. Change-Id: I687dd47cc4f4e06766e8313b4fd1b07cd4a56c1a Please don't leak local housekeeping details into the official history. Ah, Ok. Do you want me to re-send the series with these lines deleted ? Signed-off-by: Ronnie Sahlberg sahlb...@google.com Signed-off-by: Jonathan Nieder jrnie...@gmail.com --- refs.c | 27 ++- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/refs.c b/refs.c index 0368ed4..ed0485e 100644 --- a/refs.c +++ b/refs.c @@ -3623,31 +3623,8 @@ int ref_transaction_create(struct ref_transaction *transaction, int flags, const char *msg, struct strbuf *err) { - struct ref_update *update; - - assert(err); - - if (transaction-state != REF_TRANSACTION_OPEN) - die(BUG: create called for transaction that is not open); - - if (!new_sha1 || is_null_sha1(new_sha1)) - die(BUG: create ref with null new_sha1); - - if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) { - strbuf_addf(err, refusing to create ref with bad name %s, - refname); - return -1; - } - - update = add_update(transaction, refname); - - hashcpy(update-new_sha1, new_sha1); - hashclr(update-old_sha1); - update-flags = flags; - update-have_old = 1; - if (msg) - update-msg = xstrdup(msg); - return 0; + return ref_transaction_update(transaction, refname, new_sha1, + null_sha1, flags, 1, msg, err); } int ref_transaction_delete(struct ref_transaction *transaction, -- 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
Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update
Ronnie Sahlberg sahlb...@google.com writes: On Thu, Oct 23, 2014 at 10:42 AM, Junio C Hamano gits...@pobox.com wrote: Ronnie Sahlberg sahlb...@google.com writes: Subject: Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update Missing colon after refs.c ... Change-Id: I687dd47cc4f4e06766e8313b4fd1b07cd4a56c1a Please don't leak local housekeeping details into the official history. Ah, Ok. Do you want me to re-send the series with these lines deleted ? When the series is rerolled, I'd like to see these crufts gone. But please do not re-send the series without waiting for further reviews and making necessary updates, if any. Otherwise it will only make extra busywork for you and me. -- 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
[PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update
commit 03001144a015f81db5252005841bb78f57d62774 upstream. The ref_transaction_update function can already be used to create refs by passing null_sha1 as the old_sha1 parameter. Simplify by replacing transaction_create with a thin wrapper. Change-Id: I687dd47cc4f4e06766e8313b4fd1b07cd4a56c1a Signed-off-by: Ronnie Sahlberg sahlb...@google.com Signed-off-by: Jonathan Nieder jrnie...@gmail.com --- refs.c | 27 ++- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/refs.c b/refs.c index 0368ed4..ed0485e 100644 --- a/refs.c +++ b/refs.c @@ -3623,31 +3623,8 @@ int ref_transaction_create(struct ref_transaction *transaction, int flags, const char *msg, struct strbuf *err) { - struct ref_update *update; - - assert(err); - - if (transaction-state != REF_TRANSACTION_OPEN) - die(BUG: create called for transaction that is not open); - - if (!new_sha1 || is_null_sha1(new_sha1)) - die(BUG: create ref with null new_sha1); - - if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) { - strbuf_addf(err, refusing to create ref with bad name %s, - refname); - return -1; - } - - update = add_update(transaction, refname); - - hashcpy(update-new_sha1, new_sha1); - hashclr(update-old_sha1); - update-flags = flags; - update-have_old = 1; - if (msg) - update-msg = xstrdup(msg); - return 0; + return ref_transaction_update(transaction, refname, new_sha1, + null_sha1, flags, 1, msg, err); } int ref_transaction_delete(struct ref_transaction *transaction, -- 2.1.0.rc2.206.gedb03e5 -- 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
[PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update
Signed-off-by: Ronnie Sahlberg sahlb...@google.com --- refs.c | 18 ++ refs.h | 7 --- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/refs.c b/refs.c index 6dcb920..8f2aa3a 100644 --- a/refs.c +++ b/refs.c @@ -3490,28 +3490,14 @@ int ref_transaction_create(struct ref_transaction *transaction, int flags, const char *msg, struct strbuf *err) { - struct ref_update *update; - if (transaction-state != REF_TRANSACTION_OPEN) die(BUG: create called for transaction that is not open); if (!new_sha1 || is_null_sha1(new_sha1)) die(BUG: create ref with null new_sha1); - if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) { - strbuf_addf(err, Bad refname: %s, refname); - return -1; - } - - update = add_update(transaction, refname); - - hashcpy(update-new_sha1, new_sha1); - hashclr(update-old_sha1); - update-flags = flags; - update-have_old = 1; - if (msg) - update-msg = xstrdup(msg); - return 0; + return ref_transaction_update(transaction, refname, new_sha1, + null_sha1, flags, 1, msg, err); } int ref_transaction_delete(struct ref_transaction *transaction, diff --git a/refs.h b/refs.h index b0476c1..1c08cfd 100644 --- a/refs.h +++ b/refs.h @@ -276,9 +276,10 @@ struct ref_transaction *ref_transaction_begin(struct strbuf *err); /* * Add a reference update to transaction. new_sha1 is the value that * the reference should have after the update, or zeros if it should - * be deleted. If have_old is true, then old_sha1 holds the value - * that the reference should have had before the update, or zeros if - * it must not have existed beforehand. + * be deleted. If have_old is true and old_sha is not the null_sha1 + * then the previous value of the ref must match or the update will fail. + * If have_old is true and old_sha1 is the null_sha1 then the ref must not + * already exist and a new ref will be created with new_sha1. * Function returns 0 on success and non-zero on failure. A failure to update * means that the transaction as a whole has failed and will need to be * rolled back. -- 2.0.1.508.g763ab16 -- 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
Re: [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update
Ronnie Sahlberg sahlb...@google.com writes: Signed-off-by: Ronnie Sahlberg sahlb...@google.com --- refs.c | 18 ++ refs.h | 7 --- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/refs.c b/refs.c index 6dcb920..8f2aa3a 100644 --- a/refs.c +++ b/refs.c @@ -3490,28 +3490,14 @@ int ref_transaction_create(struct ref_transaction *transaction, int flags, const char *msg, struct strbuf *err) { - struct ref_update *update; - if (transaction-state != REF_TRANSACTION_OPEN) die(BUG: create called for transaction that is not open); if (!new_sha1 || is_null_sha1(new_sha1)) die(BUG: create ref with null new_sha1); - if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) { - strbuf_addf(err, Bad refname: %s, refname); - return -1; - } - - update = add_update(transaction, refname); - - hashcpy(update-new_sha1, new_sha1); - hashclr(update-old_sha1); - update-flags = flags; - update-have_old = 1; - if (msg) - update-msg = xstrdup(msg); - return 0; + return ref_transaction_update(transaction, refname, new_sha1, + null_sha1, flags, 1, msg, err); } Makes sense, but at the same time makes me wonder why no code is moved to ref_transaction_update() while removing code from here, which would only mean that code in ref_transaction_update() was added redundantly in the first place. An ideal series would have had only update code in _update() when the function is added, and later with a patch like this would lose code from _create() while adding some code to _update(), I would think. Or if all the code in _update() was necessary from day one, then perhaps this change should have been part of the same patch. It's not a big deal either way, though. Thanks. int ref_transaction_delete(struct ref_transaction *transaction, diff --git a/refs.h b/refs.h index b0476c1..1c08cfd 100644 --- a/refs.h +++ b/refs.h @@ -276,9 +276,10 @@ struct ref_transaction *ref_transaction_begin(struct strbuf *err); /* * Add a reference update to transaction. new_sha1 is the value that * the reference should have after the update, or zeros if it should - * be deleted. If have_old is true, then old_sha1 holds the value - * that the reference should have had before the update, or zeros if - * it must not have existed beforehand. + * be deleted. If have_old is true and old_sha is not the null_sha1 + * then the previous value of the ref must match or the update will fail. + * If have_old is true and old_sha1 is the null_sha1 then the ref must not + * already exist and a new ref will be created with new_sha1. * Function returns 0 on success and non-zero on failure. A failure to update * means that the transaction as a whole has failed and will need to be * rolled back. -- 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