ref_update_reject_duplicates(): expose function to whole refs module
It will soon have some other users. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
30173b8851
commit
2ced105cb1
17
refs.c
17
refs.c
@ -1702,6 +1702,23 @@ int create_symref(const char *ref_target, const char *refs_heads_master,
|
|||||||
refs_heads_master, logmsg);
|
refs_heads_master, logmsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ref_update_reject_duplicates(struct string_list *refnames,
|
||||||
|
struct strbuf *err)
|
||||||
|
{
|
||||||
|
int i, n = refnames->nr;
|
||||||
|
|
||||||
|
assert(err);
|
||||||
|
|
||||||
|
for (i = 1; i < n; i++)
|
||||||
|
if (!strcmp(refnames->items[i - 1].string, refnames->items[i].string)) {
|
||||||
|
strbuf_addf(err,
|
||||||
|
"multiple updates for ref '%s' not allowed.",
|
||||||
|
refnames->items[i].string);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int ref_transaction_prepare(struct ref_transaction *transaction,
|
int ref_transaction_prepare(struct ref_transaction *transaction,
|
||||||
struct strbuf *err)
|
struct strbuf *err)
|
||||||
{
|
{
|
||||||
|
@ -2512,23 +2512,6 @@ static struct ref_iterator *files_reflog_iterator_begin(struct ref_store *ref_st
|
|||||||
return ref_iterator;
|
return ref_iterator;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ref_update_reject_duplicates(struct string_list *refnames,
|
|
||||||
struct strbuf *err)
|
|
||||||
{
|
|
||||||
int i, n = refnames->nr;
|
|
||||||
|
|
||||||
assert(err);
|
|
||||||
|
|
||||||
for (i = 1; i < n; i++)
|
|
||||||
if (!strcmp(refnames->items[i - 1].string, refnames->items[i].string)) {
|
|
||||||
strbuf_addf(err,
|
|
||||||
"multiple updates for ref '%s' not allowed.",
|
|
||||||
refnames->items[i].string);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If update is a direct update of head_ref (the reference pointed to
|
* If update is a direct update of head_ref (the reference pointed to
|
||||||
* by HEAD), then add an extra REF_LOG_ONLY update for HEAD.
|
* by HEAD), then add an extra REF_LOG_ONLY update for HEAD.
|
||||||
|
@ -169,6 +169,14 @@ int refs_read_raw_ref(struct ref_store *ref_store,
|
|||||||
const char *refname, unsigned char *sha1,
|
const char *refname, unsigned char *sha1,
|
||||||
struct strbuf *referent, unsigned int *type);
|
struct strbuf *referent, unsigned int *type);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Write an error to `err` and return a nonzero value iff the same
|
||||||
|
* refname appears multiple times in `refnames`. `refnames` must be
|
||||||
|
* sorted on entry to this function.
|
||||||
|
*/
|
||||||
|
int ref_update_reject_duplicates(struct string_list *refnames,
|
||||||
|
struct strbuf *err);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add a ref_update with the specified properties to transaction, and
|
* Add a ref_update with the specified properties to transaction, and
|
||||||
* return a pointer to the new object. This function does not verify
|
* return a pointer to the new object. This function does not verify
|
||||||
|
Reference in New Issue
Block a user