fetch-pack: check parse_commit/object results
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
2d3539e87a
commit
f3ec549481
@ -41,7 +41,8 @@ static void rev_list_push(struct commit *commit, int mark)
|
|||||||
commit->object.flags |= mark;
|
commit->object.flags |= mark;
|
||||||
|
|
||||||
if (!(commit->object.parsed))
|
if (!(commit->object.parsed))
|
||||||
parse_commit(commit);
|
if (parse_commit(commit))
|
||||||
|
return;
|
||||||
|
|
||||||
insert_by_date(commit, &rev_list);
|
insert_by_date(commit, &rev_list);
|
||||||
|
|
||||||
@ -83,7 +84,8 @@ static void mark_common(struct commit *commit,
|
|||||||
if (!ancestors_only && !(o->flags & POPPED))
|
if (!ancestors_only && !(o->flags & POPPED))
|
||||||
non_common_revs--;
|
non_common_revs--;
|
||||||
if (!o->parsed && !dont_parse)
|
if (!o->parsed && !dont_parse)
|
||||||
parse_commit(commit);
|
if (parse_commit(commit))
|
||||||
|
return;
|
||||||
|
|
||||||
for (parents = commit->parents;
|
for (parents = commit->parents;
|
||||||
parents;
|
parents;
|
||||||
@ -103,20 +105,20 @@ static const unsigned char* get_rev(void)
|
|||||||
|
|
||||||
while (commit == NULL) {
|
while (commit == NULL) {
|
||||||
unsigned int mark;
|
unsigned int mark;
|
||||||
struct commit_list* parents;
|
struct commit_list *parents = NULL;
|
||||||
|
|
||||||
if (rev_list == NULL || non_common_revs == 0)
|
if (rev_list == NULL || non_common_revs == 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
commit = rev_list->item;
|
commit = rev_list->item;
|
||||||
if (!(commit->object.parsed))
|
if (!(commit->object.parsed))
|
||||||
parse_commit(commit);
|
if (!parse_commit(commit))
|
||||||
|
parents = commit->parents;
|
||||||
|
|
||||||
commit->object.flags |= POPPED;
|
commit->object.flags |= POPPED;
|
||||||
if (!(commit->object.flags & COMMON))
|
if (!(commit->object.flags & COMMON))
|
||||||
non_common_revs--;
|
non_common_revs--;
|
||||||
|
|
||||||
parents = commit->parents;
|
|
||||||
|
|
||||||
if (commit->object.flags & COMMON) {
|
if (commit->object.flags & COMMON) {
|
||||||
/* do not send "have", and ignore ancestors */
|
/* do not send "have", and ignore ancestors */
|
||||||
commit = NULL;
|
commit = NULL;
|
||||||
@ -212,7 +214,8 @@ static int find_common(int fd[2], unsigned char *result_sha1,
|
|||||||
if (!lookup_object(sha1))
|
if (!lookup_object(sha1))
|
||||||
die("object not found: %s", line);
|
die("object not found: %s", line);
|
||||||
/* make sure that it is parsed as shallow */
|
/* make sure that it is parsed as shallow */
|
||||||
parse_object(sha1);
|
if (!parse_object(sha1))
|
||||||
|
die("error in object: %s", line);
|
||||||
if (unregister_shallow(sha1))
|
if (unregister_shallow(sha1))
|
||||||
die("no shallow found: %s", line);
|
die("no shallow found: %s", line);
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user