From 99c2bc93000dfadc3ac26ddced23e50520cf30d0 Mon Sep 17 00:00:00 2001 From: Jon Seymour Date: Thu, 30 Jun 2005 11:51:34 +1000 Subject: [PATCH] [PATCH] Fix for git-rev-list --merge-order B ^A (A,B share common base) [rev 2] This patch makes --merge-order produce the same list as git-rev-list without --merge-order specified. In particular, if the graph looks like this: A | B |/ C | D The both git-rev-list B ^A and git-rev-list --merge-order will produce B. The unit tests have been changed to reflect the fact that the prune points are now formally part of the start list that is used to perform the --merge-order sort. That is: git-rev-list --merge-order A ^D used to produce = A | C It now produces: ^ A | C Signed-off-by: Jon Seymour Signed-off-by: Linus Torvalds --- epoch.c | 8 +++----- t/t6001-rev-list-merge-order.sh | 12 ++++++------ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/epoch.c b/epoch.c index 904cc0d4..3cbff72b 100644 --- a/epoch.c +++ b/epoch.c @@ -585,11 +585,9 @@ int sort_list_in_merge_order(struct commit_list *list, emitter_func emitter) for (; list; list = list->next) { struct commit *next = list->item; - if (!(next->object.flags & UNINTERESTING)) { - if (!(next->object.flags & DUPCHECK)) { - next->object.flags |= DUPCHECK; - commit_list_insert(list->item, &reversed); - } + if (!(next->object.flags & DUPCHECK)) { + next->object.flags |= DUPCHECK; + commit_list_insert(list->item, &reversed); } } diff --git a/t/t6001-rev-list-merge-order.sh b/t/t6001-rev-list-merge-order.sh index 29167e9a..8ac77d99 100755 --- a/t/t6001-rev-list-merge-order.sh +++ b/t/t6001-rev-list-merge-order.sh @@ -367,33 +367,33 @@ test_output_expect_success "three nodes one head, one internal, one base" 'git-r EOF test_output_expect_success "linear prune l2 ^root" 'git-rev-list --merge-order --show-breaks l2 ^root' <