Jeff King <peff@xxxxxxxx> writes: > On Sat, Feb 02, 2008 at 10:00:54PM -0500, Jeff King wrote: > >> That being said, the commit in your 'master' branch _is_ part of >> 1dd567d5, and should be culled. So I'm not clear on why it shows up only >> when you ask to see both branches, and that may be a bug. > > OK, there is definitely a bug here, but I'm having some trouble figuring > out the correct fix. It's in the revision walker, so I have cc'd those > who are more clueful than I. > > You can recreate a problematic repo using this script: > > -- >8 -- > mkdir repo && cd repo > git init > > touch file && git add file > commit() { > echo $1 >file && git commit -a -m $1 && git tag $1 > } > > commit one > commit two > commit three > git checkout -b other two > commit alt-three > git checkout master > git merge other || true > commit merged > commit four > -- 8< -- > > So a fairly simple repo, but with the key element that it contains a > merge. It is not so simple, it appears. If I add for reproducibility "test_tick" like this: commit () { test_tick && echo $1 >file && git commit -a -m $1 && git tag $1 } the problem goes away. So there is some interaction with "insert_by_date()". Still digging. t/t6009-rev-list-parent.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 43 insertions(+), 0 deletions(-) diff --git a/t/t6009-rev-list-parent.sh b/t/t6009-rev-list-parent.sh new file mode 100755 index 0000000..66164e9 --- /dev/null +++ b/t/t6009-rev-list-parent.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +test_description='properly cull all ancestors' + +. ./test-lib.sh + +commit () { + : test_tick && + echo $1 >file && + git commit -a -m $1 && + git tag $1 +} + +test_expect_success setup ' + + touch file && + git add file && + + commit one && + commit two && + commit three && + + git checkout -b other two && + commit alt-three && + + git checkout master && + + git merge -s ours other && + + commit merged && + commit four && + + git -p show-branch --more=999 + +' + +test_expect_failure 'one is ancestor of others and should not be shown' ' + + git rev-list one --not four >result && + >expect && + diff -u expect result + +' - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html