threads / patch / 1051

patch, 2 partsFix for git-rev-list --merge-order B ^A (A,B share common base) [rev 2]

Subject: [PATCH 2/2] Fix for git-rev-list --merge-order B ^A (A,B share common base) [rev 2]

## tl;dr

One message between Jun 30, 2005 and Jun 30, 2005. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Jon Seymour· Jun 30, 2005, 01:51 UTC · lore

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 <jon.seymour@gmail.com>
---
 epoch.c                         |    8 +++-----
 t/t6001-rev-list-merge-order.sh |   12 ++++++------
 2 files changed, 9 insertions(+), 11 deletions(-)
d402f03f56475c30c3b62577c5a42af09f6b95b8
Show changes to 2 files +9 −11

epoch.c, t/t6001-rev-list-merge-order.sh

diff --git a/epoch.c b/epoch.c
--- a/epoch.c
+++ b/epoch.c
@@ -585,11 +585,9 @@ int sort_list_in_merge_order(struct comm
 	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
--- 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 
 EOF
 
 test_output_expect_success "linear prune l2 ^root" 'git-rev-list --merge-order --show-breaks l2 ^root' <<EOF
-= l2
+^ l2
 | l1
 | l0
 EOF
 
 test_output_expect_success "linear prune l2 ^l0" 'git-rev-list --merge-order --show-breaks l2 ^l0' <<EOF
-= l2
+^ l2
 | l1
 EOF
 
 test_output_expect_success "linear prune l2 ^l1" 'git-rev-list --merge-order --show-breaks l2 ^l1' <<EOF
-= l2
+^ l2
 EOF
 
 test_output_expect_success "linear prune l5 ^a4" 'git-rev-list --merge-order --show-breaks l5 ^a4' <<EOF
-= l5
+^ l5
 | l4
 | l3
 EOF
 
 test_output_expect_success "linear prune l5 ^l3" 'git-rev-list --merge-order --show-breaks l5 ^l3' <<EOF
-= l5
+^ l5
 | l4
 EOF
 
 test_output_expect_success "linear prune l5 ^l4" 'git-rev-list --merge-order --show-breaks l5 ^l4' <<EOF
-= l5
+^ l5
 EOF
 
 test_output_expect_success "max-count 10 - merge order" 'git-rev-list --merge-order --show-breaks --max-count=10 l5' <<EOF
------------

← back to recent threads