From: Derrick Stolee <[email protected]>
Signed-off-by: Derrick Stolee <[email protected]>
---
t/helper/test-reach.c | 7 +++++++
t/t6600-test-reach.sh | 22 ++++++++++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c
index 97c726040..73cb55208 100644
--- a/t/helper/test-reach.c
+++ b/t/helper/test-reach.c
@@ -85,6 +85,13 @@ int cmd__reach(int ac, const char **av)
printf("%s\n", oid_to_hex(&list->item->object.oid));
list = list->next;
}
+ } else if (!strcmp(av[1], "reduce_heads")) {
+ struct commit_list *list = reduce_heads(X);
+ printf("%s(X):\n", av[1]);
+ while (list) {
+ printf("%s\n", oid_to_hex(&list->item->object.oid));
+ list = list->next;
+ }
}
exit(0);
diff --git a/t/t6600-test-reach.sh b/t/t6600-test-reach.sh
index 19e39ad7c..e365a4ea6 100755
--- a/t/t6600-test-reach.sh
+++ b/t/t6600-test-reach.sh
@@ -138,4 +138,26 @@ test_expect_success 'get_merge_bases_many' '
test_three_modes get_merge_bases_many
'
+test_expect_success 'reduce_heads' '
+ cat >input <<-\EOF &&
+ X:commit-1-10
+ X:commit-2-8
+ X:commit-3-6
+ X:commit-4-4
+ X:commit-1-7
+ X:commit-2-5
+ X:commit-3-3
+ X:commit-5-1
+ EOF
+ {
+ printf "reduce_heads(X):\n" &&
+ git rev-parse commit-5-1 &&
+ git rev-parse commit-4-4 &&
+ git rev-parse commit-3-6 &&
+ git rev-parse commit-2-8 &&
+ git rev-parse commit-1-10
+ } >expect &&
+ test_three_modes reduce_heads
+'
+
test_done
--
gitgitgadget