Skip to content

Commit 25b7866

Browse files
ttaylorrgitster
authored andcommitted
pseudo-merge.c: do not generate empty pseudo-merge commits
The previous commit demonstrated it is possible to generate empty pseudo-merge commits, which is not useful as such pseudo-merges carry no information. Ensure that we only generate non-empty groups by not pushing a new commit onto the bitmap_writer when that commit has no parents. Signed-off-by: Taylor Blau <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 42f80e3 commit 25b7866

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

pseudo-merge.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -357,8 +357,10 @@ static void select_pseudo_merges_1(struct bitmap_writer *writer,
357357
p = commit_list_append(c, p);
358358
} while (j % group->stable_size);
359359

360-
bitmap_writer_push_commit(writer, merge, 1);
361-
writer->pseudo_merges_nr++;
360+
if (merge->parents) {
361+
bitmap_writer_push_commit(writer, merge, 1);
362+
writer->pseudo_merges_nr++;
363+
}
362364
}
363365

364366
/* make up to group->max_merges pseudo merges for unstable commits */
@@ -398,8 +400,9 @@ static void select_pseudo_merges_1(struct bitmap_writer *writer,
398400
p = commit_list_append(c, p);
399401
}
400402

401-
bitmap_writer_push_commit(writer, merge, 1);
402-
writer->pseudo_merges_nr++;
403+
if (merge->parents) {
404+
bitmap_writer_push_commit(writer, merge, 1);
405+
writer->pseudo_merges_nr++; }
403406
if (end >= matches->unstable_nr)
404407
break;
405408
}

t/t5333-pseudo-merge-bitmaps.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ test_expect_success 'pseudo-merge reuse' '
390390
)
391391
'
392392

393-
test_expect_failure 'empty pseudo-merge group' '
393+
test_expect_success 'empty pseudo-merge group' '
394394
git init pseudo-merge-empty-group &&
395395
(
396396
cd pseudo-merge-empty-group &&

0 commit comments

Comments
 (0)