aboutsummaryrefslogtreecommitdiffstats
path: root/pseudo-merge.c
diff options
context:
space:
mode:
Diffstat (limited to 'pseudo-merge.c')
-rw-r--r--pseudo-merge.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/pseudo-merge.c b/pseudo-merge.c
index 77a83b9c5c..0c11b0ab3d 100644
--- a/pseudo-merge.c
+++ b/pseudo-merge.c
@@ -218,6 +218,8 @@ static int find_pseudo_merge_group_for_ref(const char *refname,
c = lookup_commit(the_repository, oid);
if (!c)
return 0;
+ if (!packlist_find(writer->to_pack, oid))
+ return 0;
has_bitmap = bitmap_writer_has_bitmapped_object_id(writer, oid);
@@ -358,8 +360,10 @@ static void select_pseudo_merges_1(struct bitmap_writer *writer,
p = commit_list_append(c, p);
} while (j % group->stable_size);
- bitmap_writer_push_commit(writer, merge, 1);
- writer->pseudo_merges_nr++;
+ if (merge->parents) {
+ bitmap_writer_push_commit(writer, merge, 1);
+ writer->pseudo_merges_nr++;
+ }
}
/* make up to group->max_merges pseudo merges for unstable commits */
@@ -399,8 +403,9 @@ static void select_pseudo_merges_1(struct bitmap_writer *writer,
p = commit_list_append(c, p);
}
- bitmap_writer_push_commit(writer, merge, 1);
- writer->pseudo_merges_nr++;
+ if (merge->parents) {
+ bitmap_writer_push_commit(writer, merge, 1);
+ writer->pseudo_merges_nr++; }
if (end >= matches->unstable_nr)
break;
}