diff options
author | Clemens Buchacher <drizzd@aon.at> | 2009-05-31 16:26:48 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-06-01 19:41:24 -0700 |
commit | 6d2bf96e550731499c73731e5623017d193f837f (patch) | |
tree | bccf71ac9e47910a378878be963a2851a432f74d /http-push.c | |
parent | 6a01554e6350123c78de805d820e90f1c56e5fdc (diff) | |
download | git-6d2bf96e550731499c73731e5623017d193f837f.tar.gz |
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.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/http-push.c b/http-push.c index e16a0ad3f9..35b3856a47 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; |