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>
This commit is contained in:
parent
b9afe6654d
commit
df02ebdac8
18
remote.c
18
remote.c
@ -745,6 +745,15 @@ int for_each_remote(each_remote_fn fn, void *priv)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void handle_duplicate(struct ref *ref1, struct ref *ref2)
|
||||||
|
{
|
||||||
|
if (strcmp(ref1->name, ref2->name))
|
||||||
|
die("%s tracks both %s and %s",
|
||||||
|
ref2->peer_ref->name, ref1->name, ref2->name);
|
||||||
|
free(ref2->peer_ref);
|
||||||
|
free(ref2);
|
||||||
|
}
|
||||||
|
|
||||||
struct ref *ref_remove_duplicates(struct ref *ref_map)
|
struct ref *ref_remove_duplicates(struct ref *ref_map)
|
||||||
{
|
{
|
||||||
struct string_list refs = STRING_LIST_INIT_NODUP;
|
struct string_list refs = STRING_LIST_INIT_NODUP;
|
||||||
@ -766,14 +775,7 @@ struct ref *ref_remove_duplicates(struct ref *ref_map)
|
|||||||
|
|
||||||
if (item->util) {
|
if (item->util) {
|
||||||
/* Entry already existed */
|
/* Entry already existed */
|
||||||
if (strcmp(((struct ref *)item->util)->name,
|
handle_duplicate((struct ref *)item->util, ref);
|
||||||
ref->name))
|
|
||||||
die("%s tracks both %s and %s",
|
|
||||||
ref->peer_ref->name,
|
|
||||||
((struct ref *)item->util)->name,
|
|
||||||
ref->name);
|
|
||||||
free(ref->peer_ref);
|
|
||||||
free(ref);
|
|
||||||
} else {
|
} else {
|
||||||
*p = ref;
|
*p = ref;
|
||||||
p = &ref->next;
|
p = &ref->next;
|
||||||
|
Loading…
Reference in New Issue
Block a user