From 98ffd5ff67d1097280e3c16accde6de86d3ece3d Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Mon, 22 Jun 2015 16:02:55 +0200 Subject: delete_refs(): new function for the refs API Move the function remove_branches() from builtin/remote.c to refs.c, rename it to delete_refs(), and make it public. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- refs.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'refs.c') diff --git a/refs.c b/refs.c index 9b7bdd419..72e51a967 100644 --- a/refs.c +++ b/refs.c @@ -2830,6 +2830,25 @@ int delete_ref(const char *refname, const unsigned char *old_sha1, return 0; } +int delete_refs(struct string_list *refnames) +{ + struct strbuf err = STRBUF_INIT; + int i, result = 0; + + if (repack_without_refs(refnames, &err)) + result |= error("%s", err.buf); + strbuf_release(&err); + + for (i = 0; i < refnames->nr; i++) { + const char *refname = refnames->items[i].string; + + if (delete_ref(refname, NULL, 0)) + result |= error(_("Could not remove branch %s"), refname); + } + + return result; +} + /* * People using contrib's git-new-workdir have .git/logs/refs -> * /some/other/path/.git/logs/refs, and that may live on another device. -- cgit v1.2.1