summaryrefslogtreecommitdiff
path: root/refs.h
diff options
context:
space:
mode:
authorJens Lindström <jl@opera.com>2014-05-23 12:30:25 +0200
committerJunio C Hamano <gitster@pobox.com>2014-05-27 12:30:47 -0700
commite6bea66db6229a0975ebba510a1d2827bf09cb7f (patch)
treeb81289073f96aae1f89492b519083c7ccb2ed44b /refs.h
parentc9e768bb77762765f739fffb5c09d0888f3de20e (diff)
downloadgit-e6bea66db6229a0975ebba510a1d2827bf09cb7f.tar.gz
remote prune: optimize "dangling symref" check/warningjl/remote-rm-prune
When 'git remote prune' was used to delete many refs in a repository with many refs, a lot of time was spent checking for (now) dangling symbolic refs pointing to the deleted ref, since warn_dangling_symref() was once per deleted ref to check all other refs in the repository. Avoid this using the new warn_dangling_symrefs() function which makes one pass over all refs and checks for all the deleted refs in one go, after they have all been deleted. Signed-off-by: Jens Lindström <jl@opera.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.h')
-rw-r--r--refs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/refs.h b/refs.h
index f287c7aa65..1440acc06c 100644
--- a/refs.h
+++ b/refs.h
@@ -89,6 +89,7 @@ static inline const char *has_glob_specials(const char *pattern)
extern int for_each_rawref(each_ref_fn, void *);
extern void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refname);
+extern void warn_dangling_symrefs(FILE *fp, const char *msg_fmt, const struct string_list* refnames);
/*
* Lock the packed-refs file for writing. Flags is passed to