# HG changeset patch # User Pierre-Yves David # Date 1504278261 -7200 # Node ID 610d06bcd714c93ce88b8aa94e154472f57c3aef # Parent 4ae89b5834e6804a9301a92198d3e2bd8075146f convertbookmark: properly exclude public changeset Public changeset are immutable and cannot have a topic anyway. diff -r 4ae89b5834e6 -r 610d06bcd714 hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Fri Sep 01 16:51:49 2017 +0200 +++ b/hgext3rd/topic/__init__.py Fri Sep 01 17:04:21 2017 +0200 @@ -525,9 +525,9 @@ """ # copied from mercurial.repair.stripbmrevset - bookrevset = ("ancestors(bookmark(%s)) - ancestors(head() and not " - "bookmark(%s)) - ancestors(bookmark() and not " - "bookmark(%s))") + bookrevset = ("not public() and (ancestors(bookmark(%s)) - ancestors(head()" + "and not bookmark(%s)) - ancestors(bookmark()" + "and not bookmark(%s)))") touchedrevs = repo.revs(bookrevset, bmark, bmark, bmark) rewrote = _changetopics(ui, repo, touchedrevs, bmark) # We didn't changed topic to any changesets because the revset diff -r 4ae89b5834e6 -r 610d06bcd714 tests/test-topic-debugcb.t --- a/tests/test-topic-debugcb.t Fri Sep 01 16:51:49 2017 +0200 +++ b/tests/test-topic-debugcb.t Fri Sep 01 17:04:21 2017 +0200 @@ -19,6 +19,7 @@ $ cd repo $ echo "Hello" > root $ hg commit -Aqm "root" + $ hg phase --public . $ echo "Hello" > a $ hg commit -Aqm "First commit" $ echo "Hello" > b @@ -157,6 +158,7 @@ $ cd setup1 $ echo "Hello" > root $ hg commit -Aqm "root" + $ hg phase --public . $ echo "Hello" > A $ hg commit -Aqm "A" $ echo "Hello" > B @@ -218,6 +220,7 @@ $ cd setup2 $ echo "Hello" > root $ hg commit -Aqm "root" + $ hg phase --public . $ echo "Hello" > A $ hg commit -Aqm "A" $ hg phase --public . @@ -265,3 +268,44 @@ | o [0:249055fcca50] root + +Check that phase are properly take in account +--------------------------------------------- + +(we reuse above test, taking advantage of a small bug regarding stacked bookmarks. we can fuse the two tests once that bug is fixed) + + $ cd .. + $ hg init setup-phases + $ cd setup-phases + $ echo "Hello" > root + $ hg commit -Aqm "root" + $ hg phase --public . + $ echo "Hello" > A + $ hg commit -Aqm "A" + $ echo "Hello" > B + $ hg commit -Aqm "B" + $ echo "Hello" > C + $ hg commit -Aqm "C" + $ hg bookmark -r . bar + $ hg log -G + @ [3:ac05e0d05d00] C + | bookmark: bar + o [2:10f317d09e78] B + | + o [1:e34122c9a2bf] A + | + o [0:249055fcca50] root + + + $ hg debugconvertbookmark --all + switching to topic bar + changed topic to "bar" on 3 revisions + $ hg log -G + @ [6:863c43a7951c] C + | topic: bar + o [5:ac7f12ac947f] B + | topic: bar + o [4:fc82c8c14b4c] A + | topic: bar + o [0:249055fcca50] root +