summaryrefslogtreecommitdiff
path: root/http-push.c
diff options
context:
space:
mode:
authorClemens Buchacher <drizzd@aon.at>2009-05-31 14:26:48 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-06-02 02:41:24 (GMT)
commit6d2bf96e550731499c73731e5623017d193f837f (patch)
treebccf71ac9e47910a378878be963a2851a432f74d /http-push.c
parent6a01554e6350123c78de805d820e90f1c56e5fdc (diff)
downloadgit-6d2bf96e550731499c73731e5623017d193f837f.zip
git-6d2bf96e550731499c73731e5623017d193f837f.tar.gz
git-6d2bf96e550731499c73731e5623017d193f837f.tar.bz2
match_refs: search ref list tail internally
Avoid code duplication by moving list tail search to match_refs(). This does not change the semantics, except for http-push, which now inserts to the front of the ref list in order to get rid of the global remote_tail. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http-push.c')
-rw-r--r--http-push.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/http-push.c b/http-push.c
index e16a0ad..35b3856 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1844,7 +1844,7 @@ static int update_remote(unsigned char *sha1, struct remote_lock *lock)
return 1;
}
-static struct ref *remote_refs, **remote_tail;
+static struct ref *remote_refs;
static void one_remote_ref(char *refname)
{
@@ -1874,13 +1874,12 @@ static void one_remote_ref(char *refname)
}
}
- *remote_tail = ref;
- remote_tail = &ref->next;
+ ref->next = remote_refs;
+ remote_refs = ref;
}
static void get_dav_remote_heads(void)
{
- remote_tail = &remote_refs;
remote_ls("refs/", (PROCESS_FILES | PROCESS_DIRS | RECURSIVE), process_ls_ref, NULL);
}
@@ -2311,9 +2310,7 @@ int main(int argc, char **argv)
}
/* match them up */
- if (!remote_tail)
- remote_tail = &remote_refs;
- if (match_refs(local_refs, remote_refs, &remote_tail,
+ if (match_refs(local_refs, &remote_refs,
nr_refspec, (const char **) refspec, push_all)) {
rc = -1;
goto cleanup;