diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2017-05-22 16:17:45 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-05-23 14:29:55 +0900 |
commit | 2ced105cb1df064b9400aef5f4d35e20026ab267 (patch) | |
tree | f9a32c742c83422971c9694d71d67e5d4fe0ba18 /refs | |
parent | 30173b8851bb7203de938a638386cb9e6d7c501b (diff) | |
download | git-2ced105cb1df064b9400aef5f4d35e20026ab267.tar.gz |
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>
Diffstat (limited to 'refs')
-rw-r--r-- | refs/files-backend.c | 17 | ||||
-rw-r--r-- | refs/refs-internal.h | 8 |
2 files changed, 8 insertions, 17 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c index 19842d2e56..8d0ce739a6 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -2512,23 +2512,6 @@ static struct ref_iterator *files_reflog_iterator_begin(struct ref_store *ref_st 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 * by HEAD), then add an extra REF_LOG_ONLY update for HEAD. diff --git a/refs/refs-internal.h b/refs/refs-internal.h index 4d3dd17f9f..192f9f85c9 100644 --- a/refs/refs-internal.h +++ b/refs/refs-internal.h @@ -170,6 +170,14 @@ int refs_read_raw_ref(struct ref_store *ref_store, 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 * return a pointer to the new object. This function does not verify * that refname is well-formed. new_sha1 and old_sha1 are only |