ref_remote_duplicates(): extract a function handle_duplicate()
It will become more complex in a moment. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael Haggerty committed
Oct 30, 2013 at 06:33 UTC
df02ebdac8bdf0edd30e85c9902d177dccfac276
1 file changed
+10
-8
remote.c
+10
-8
@@ -745,6 +745,15 @@ int for_each_remote(each_remote_fn fn, void *priv)
745
return result;
746
}
747
748
+static void handle_duplicate(struct ref *ref1, struct ref *ref2)
749
+{
750
+ if (strcmp(ref1->name, ref2->name))
751
+ die("%s tracks both %s and %s",
752
+ ref2->peer_ref->name, ref1->name, ref2->name);
753
+ free(ref2->peer_ref);
754
+ free(ref2);
755
+}
756
+
757
struct ref *ref_remove_duplicates(struct ref *ref_map)
758
{
759
struct string_list refs = STRING_LIST_INIT_NODUP;
@@ -766,14 +775,7 @@ struct ref *ref_remove_duplicates(struct ref *ref_map)
775
776
if (item->util) {
777
/* Entry already existed */
769
- if (strcmp(((struct ref *)item->util)->name,
770
- ref->name))
771
- die("%s tracks both %s and %s",
772
- ref->peer_ref->name,
773
- ((struct ref *)item->util)->name,
774
- ref->name);
775
- free(ref->peer_ref);
776
- free(ref);
778
+ handle_duplicate((struct ref *)item->util, ref);
779
} else {
780
*p = ref;
781
p = &ref->next;