X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=http-push.c;h=2cd068a6f1ef0199cc27a1564678c91b66237a9b;hb=1c7b76be7d620bbaf2e6b8417f04012326bbb9df;hp=f173dcd64f73bddc891808c96c43407533aac1f5;hpb=b71ce7f3f13ebd0e212bdda82b012ee36df4f63f;p=git.git diff --git a/http-push.c b/http-push.c index f173dcd64..2cd068a6f 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 @@ -782,7 +783,7 @@ static void finish_request(struct transfer_request *request) lst = &((*lst)->next); *lst = (*lst)->next; - if (!verify_pack(target, 0)) + if (!verify_pack(target)) install_packed_git(target); else remote->can_update_info_refs = 0; @@ -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; @@ -2277,6 +2253,7 @@ int main(int argc, char **argv) signal(SIGINT, remove_locks_on_signal); signal(SIGHUP, remove_locks_on_signal); signal(SIGQUIT, remove_locks_on_signal); + signal(SIGTERM, remove_locks_on_signal); /* Check whether the remote has server info files */ remote->can_update_info_refs = 0; @@ -2407,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); @@ -2417,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();