ref_transaction_add_update(): remove a check
We want to make `REF_ISPRUNING` internal to the files backend. For this to be possible, `ref_transaction_add_update()` mustn't know about it. So move the check that `REF_ISPRUNING` is only used with `REF_NODEREF` from this function to `files_transaction_prepare()`. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
a9bbbcec0d
commit
62c72d1fd0
3
refs.c
3
refs.c
|
@ -906,9 +906,6 @@ struct ref_update *ref_transaction_add_update(
|
||||||
if (transaction->state != REF_TRANSACTION_OPEN)
|
if (transaction->state != REF_TRANSACTION_OPEN)
|
||||||
die("BUG: update called for transaction that is not open");
|
die("BUG: update called for transaction that is not open");
|
||||||
|
|
||||||
if ((flags & REF_ISPRUNING) && !(flags & REF_NODEREF))
|
|
||||||
die("BUG: REF_ISPRUNING set without REF_NODEREF");
|
|
||||||
|
|
||||||
FLEX_ALLOC_STR(update, refname, refname);
|
FLEX_ALLOC_STR(update, refname, refname);
|
||||||
ALLOC_GROW(transaction->updates, transaction->nr + 1, transaction->alloc);
|
ALLOC_GROW(transaction->updates, transaction->nr + 1, transaction->alloc);
|
||||||
transaction->updates[transaction->nr++] = update;
|
transaction->updates[transaction->nr++] = update;
|
||||||
|
|
|
@ -2518,13 +2518,18 @@ static int files_transaction_prepare(struct ref_store *ref_store,
|
||||||
* transaction. (If we end up splitting up any updates using
|
* transaction. (If we end up splitting up any updates using
|
||||||
* split_symref_update() or split_head_update(), those
|
* split_symref_update() or split_head_update(), those
|
||||||
* functions will check that the new updates don't have the
|
* functions will check that the new updates don't have the
|
||||||
* same refname as any existing ones.)
|
* same refname as any existing ones.) Also fail if any of the
|
||||||
|
* updates use REF_ISPRUNING without REF_NODEREF.
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < transaction->nr; i++) {
|
for (i = 0; i < transaction->nr; i++) {
|
||||||
struct ref_update *update = transaction->updates[i];
|
struct ref_update *update = transaction->updates[i];
|
||||||
struct string_list_item *item =
|
struct string_list_item *item =
|
||||||
string_list_append(&affected_refnames, update->refname);
|
string_list_append(&affected_refnames, update->refname);
|
||||||
|
|
||||||
|
if ((update->flags & REF_ISPRUNING) &&
|
||||||
|
!(update->flags & REF_NODEREF))
|
||||||
|
BUG("REF_ISPRUNING set without REF_NODEREF");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We store a pointer to update in item->util, but at
|
* We store a pointer to update in item->util, but at
|
||||||
* the moment we never use the value of this field
|
* the moment we never use the value of this field
|
||||||
|
|
Loading…
Reference in New Issue