diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-06-07 11:39:20 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-06-08 13:46:37 -0700 |
commit | d633c882db7cc79bf2d33df99cb0d1c2ef28c15d (patch) | |
tree | 493a8269fb8f53e95e37dbea1ede5fe8eacc4a16 /http-push.c | |
parent | e048a49f96172aecec96a5821a2177cbd49a24ed (diff) | |
download | git-d633c882db7cc79bf2d33df99cb0d1c2ef28c15d.tar.gz git-d633c882db7cc79bf2d33df99cb0d1c2ef28c15d.tar.xz |
http-push.c: remove duplicated code
An earlier commit aa1dbc9 (Update http-push functionality, 2006-03-07)
borrowed some code from rev-list.c.
This copy and paste made sense back then, because mark_edges_uninteresting(),
and its helper mark_edge_parents_uninteresting(), accessed a file scope
static variable "revs" in rev-list.c, and http-push.c did not have nor care
about such a variable.
But these days they are already properly libified and live in list-objects.c
and they take "revs" as as an argument. Make use of them and lose 20 or
so lines.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http-push.c')
-rw-r--r-- | http-push.c | 29 |
1 files changed, 3 insertions, 26 deletions
diff --git a/http-push.c b/http-push.c index c93e781c3..665712a85 100644 --- a/http-push.c +++ b/http-push.c @@ -9,6 +9,7 @@ #include "revision.h" #include "exec_cmd.h" #include "remote.h" +#include "list-objects.h" #include <expat.h> @@ -1878,31 +1879,6 @@ static int ref_newer(const unsigned char *new_sha1, return found; } -static void mark_edge_parents_uninteresting(struct commit *commit) -{ - struct commit_list *parents; - - for (parents = commit->parents; parents; parents = parents->next) { - struct commit *parent = parents->item; - if (!(parent->object.flags & UNINTERESTING)) - continue; - mark_tree_uninteresting(parent->tree); - } -} - -static void mark_edges_uninteresting(struct commit_list *list) -{ - for ( ; list; list = list->next) { - struct commit *commit = list->item; - - if (commit->object.flags & UNINTERESTING) { - mark_tree_uninteresting(commit->tree); - continue; - } - mark_edge_parents_uninteresting(commit); - } -} - static void add_remote_info_ref(struct remote_ls_ctx *ls) { struct strbuf *buf = (struct strbuf *)ls->userData; @@ -2408,6 +2384,7 @@ int main(int argc, char **argv) } init_revisions(&revs, setup_git_directory()); setup_revisions(commit_argc, commit_argv, &revs, NULL); + revs.edge_hint = 0; /* just in case */ free(new_sha1_hex); if (old_sha1_hex) { free(old_sha1_hex); @@ -2418,7 +2395,7 @@ int main(int argc, char **argv) pushing = 0; if (prepare_revision_walk(&revs)) die("revision walk setup failed"); - mark_edges_uninteresting(revs.commits); + mark_edges_uninteresting(revs.commits, &revs, NULL); objects_to_send = get_delta(&revs, ref_lock); finish_all_active_slots(); |