summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Seymour <jon.seymour@gmail.com>2005-06-30 01:51:34 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-30 03:53:10 (GMT)
commit99c2bc93000dfadc3ac26ddced23e50520cf30d0 (patch)
tree6f7bdf5740f757d49d02a16ea691e6093373e60c
parentda4b932a0c5b249694216b1580b7bc2ded9e0280 (diff)
downloadgit-99c2bc93000dfadc3ac26ddced23e50520cf30d0.zip
git-99c2bc93000dfadc3ac26ddced23e50520cf30d0.tar.gz
git-99c2bc93000dfadc3ac26ddced23e50520cf30d0.tar.bz2
[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 <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--epoch.c8
-rwxr-xr-xt/t6001-rev-list-merge-order.sh12
2 files changed, 9 insertions, 11 deletions
diff --git a/epoch.c b/epoch.c
index 904cc0d..3cbff72 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 29167e9..8ac77d9 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' <<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