From 2ced105cb1df064b9400aef5f4d35e20026ab267 Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Mon, 22 May 2017 16:17:45 +0200 Subject: ref_update_reject_duplicates(): expose function to whole refs module It will soon have some other users. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- refs.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'refs.c') diff --git a/refs.c b/refs.c index b3860a9e33..beb49fb297 100644 --- a/refs.c +++ b/refs.c @@ -1702,6 +1702,23 @@ int create_symref(const char *ref_target, const char *refs_heads_master, 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, struct strbuf *err) { -- cgit v1.3