diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2015-06-22 16:02:55 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-06-22 13:17:09 -0700 |
commit | 98ffd5ff67d1097280e3c16accde6de86d3ece3d (patch) | |
tree | b910d88f96b9b9a40ad25bf27823b3b7fba6daae /refs.c | |
parent | fc67a0825caaff4eb5d4afdcc626263c8d214f36 (diff) | |
download | git-98ffd5ff67d1097280e3c16accde6de86d3ece3d.tar.gz |
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 <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.c')
-rw-r--r-- | refs.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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. |