##// END OF EJS Templates
repoview: do not crash when localtags refers to non existing revisions...
repoview: do not crash when localtags refers to non existing revisions This fixes a crash that may happen when using mercurial 3.0.x. The _gethiddenblockers function assumed that the output of tags.readlocaltags() was a dict mapping tags to of valid nodes. However this was not necessarily the case. When a repository had obsolete revisions and had local tag pointing to a non existing revision was found, many mercurial commands would crash. This revision fixes the problem by removing any tags from the output of tags.readlocaltags() which point to invalid nodes. We may want to add a warning when this happens (although it might be annoying to get that warning for every command, possibly even more than once per command). A test for this problem has been added to test-obsolete.t. Without this fix the test would output: $ hg tags abort: 00changelog.i@3816541e5485: no node! [255] Instead of: $ hg tags tiptag 2:3816541e5485 tip 2:3816541e5485 visible 0:193e9254ce7e

File last commit:

r21823:925d1bb9 stable
r21823:925d1bb9 stable
Show More
test-obsolete.t
921 lines | 28.0 KiB | text/troff | Tads3Lexer
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 $ cat >> $HGRCPATH << EOF
> [phases]
> # public changeset are not obsolete
> publish=false
> EOF
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071 $ mkcommit() {
> echo "$1" > "$1"
> hg add "$1"
> hg ci -m "add $1"
> }
$ getid() {
Pierre-Yves David
clfilter: enforce hidden changeset globally...
r18267 > hg id --debug --hidden -ir "desc('$1')"
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071 > }
Patrick Mezard
push: do not try to push remote obsolete if local has none
r17252 $ cat > debugkeys.py <<EOF
> def reposetup(ui, repo):
> class debugkeysrepo(repo.__class__):
> def listkeys(self, namespace):
> ui.write('listkeys %s\n' % (namespace,))
> return super(debugkeysrepo, self).listkeys(namespace)
>
> if repo.local():
> repo.__class__ = debugkeysrepo
> EOF
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071
$ hg init tmpa
$ cd tmpa
Pierre-Yves David
obsolete: introduce an `_enabled` switch to disable the feature by default...
r17296 $ mkcommit kill_me
Checking that the feature is properly disabled
$ hg debugobsolete -d '0 0' `getid kill_me` -u babar
abort: obsolete feature is not enabled on this repo
[255]
Enabling it
$ cat > ../obs.py << EOF
> import mercurial.obsolete
> mercurial.obsolete._enabled = True
> EOF
$ echo '[extensions]' >> $HGRCPATH
$ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071
Killing a single changeset without replacement
Patrick Mezard
debugobsolete: do not traceback on invalid node identifiers
r17292 $ hg debugobsolete 0
abort: changeset references must be full hexadecimal node identifiers
[255]
$ hg debugobsolete '00'
abort: changeset references must be full hexadecimal node identifiers
[255]
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
Pierre-Yves.David@ens-lyon.org
debugobsolete: list all obsolete marker if no argument are specified
r17074 $ hg debugobsolete
97b7c2d76b1845ed3eb988cd612611e72406cef0 0 {'date': '0 0', 'user': 'babar'}
Pierre-Yves David
changectx: fix the handling of `tip`...
r18464
(test that mercurial is not confused)
$ hg up null --quiet # having 0 as parent prevents it to be hidden
$ hg tip
changeset: -1:000000000000
tag: tip
user:
date: Thu Jan 01 00:00:00 1970 +0000
$ hg up --hidden tip --quiet
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071 $ cd ..
Killing a single changeset with replacement
$ hg init tmpb
$ cd tmpb
$ mkcommit a
$ mkcommit b
$ mkcommit original_c
$ hg up "desc('b')"
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ mkcommit new_c
created new head
Patrick Mezard
revset: add hidden() revset
r17390 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
Pierre-Yves David
debugobsolete: add --flags option...
r17830 $ hg debugobsolete --flag 12 `getid original_c` `getid new_c` -d '56 12'
Patrick Mezard
revset: add hidden() revset
r17390 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
2:245bde4270cd add original_c
Matt Mackall
debugrevlog: use unfiltered view for changelog
r21033 $ hg debugrevlog -cd
# rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads
0 -1 -1 0 59 0 0 0 0 58 58 0 1
1 0 -1 59 118 59 59 0 0 58 116 0 1
2 1 -1 118 204 59 59 59 0 76 192 0 1
3 1 -1 204 271 204 204 59 0 66 258 0 2
Pierre-Yves.David@ens-lyon.org
debugobsolete: list all obsolete marker if no argument are specified
r17074 $ hg debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071
do it again (it read the obsstore before adding new changeset)
$ hg up '.^'
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ mkcommit new_2_c
created new head
$ hg debugobsolete -d '1337 0' `getid new_c` `getid new_2_c`
Pierre-Yves.David@ens-lyon.org
debugobsolete: list all obsolete marker if no argument are specified
r17074 $ hg debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
debugobsolete: list all obsolete marker if no argument are specified
r17074 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071
Register two markers with a missing node
$ hg up '.^'
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ mkcommit new_3_c
created new head
$ hg debugobsolete -d '1338 0' `getid new_2_c` 1337133713371337133713371337133713371337
$ hg debugobsolete -d '1339 0' 1337133713371337133713371337133713371337 `getid new_3_c`
Pierre-Yves.David@ens-lyon.org
debugobsolete: list all obsolete marker if no argument are specified
r17074 $ hg debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
debugobsolete: list all obsolete marker if no argument are specified
r17074 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075
Pierre-Yves David
obsolete: cheap detection of nullid as successors...
r17774 Refuse pathological nullid successors
$ hg debugobsolete -d '9001 0' 1337133713371337133713371337133713371337 0000000000000000000000000000000000000000
transaction abort!
rollback completed
abort: bad obsolescence marker detected: invalid successors nullid
[255]
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119 Check that graphlog detect that a changeset is obsolete:
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119 @ changeset: 5:5601fb93a350
| tag: tip
| parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add new_3_c
|
o changeset: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add b
|
o changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
Pierre-Yves David
clfilter: ensure that hidden filtering is working on all commands...
r18268 check that heads does not report them
$ hg heads
changeset: 5:5601fb93a350
tag: tip
parent: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add new_3_c
$ hg heads --hidden
changeset: 5:5601fb93a350
tag: tip
parent: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add new_3_c
changeset: 4:ca819180edb9
parent: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add new_2_c
changeset: 3:cdbce2fbb163
parent: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add new_c
changeset: 2:245bde4270cd
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add original_c
check that summary does not report them
$ hg init ../sink
$ echo '[paths]' >> .hg/hgrc
$ echo 'default=../sink' >> .hg/hgrc
$ hg summary --remote
parent: 5:5601fb93a350 tip
add new_3_c
branch: default
commit: (clean)
update: (current)
remote: 3 outgoing
$ hg summary --remote --hidden
parent: 5:5601fb93a350 tip
add new_3_c
branch: default
commit: (clean)
update: 3 new changesets, 4 branch heads (merge)
remote: 3 outgoing
Pierre-Yves David
clfilter: stronger detection of filtered changeset in changectx.__init__...
r18423 check that various commands work well with filtering
$ hg tip
changeset: 5:5601fb93a350
tag: tip
parent: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add new_3_c
$ hg log -r 6
abort: unknown revision '6'!
[255]
$ hg log -r 4
abort: unknown revision '4'!
[255]
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119 Check that public changeset are not accounted as obsolete:
Pierre-Yves David
clfilter: enforce hidden changeset globally...
r18267 $ hg --hidden phase --public 2
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119 @ changeset: 5:5601fb93a350
| tag: tip
| parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add new_3_c
|
| o changeset: 2:245bde4270cd
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_c
|
o changeset: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add b
|
o changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
Pierre-Yves David
revset: add a bumped revset...
r17829 And that bumped changeset are detected
--------------------------------------
If we didn't filtered obsolete changesets out, 3 and 4 would show up too. Also
note that the bumped changeset (5:5601fb93a350) is not a direct successor of
the public changeset
$ hg log --hidden -r 'bumped()'
changeset: 5:5601fb93a350
tag: tip
parent: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add new_3_c
Pierre-Yves David
push: refuse to push bumped changeset...
r17834 And that we can't push bumped changeset
Pierre-Yves David
test: fix truncated comment in test...
r18085 $ hg push ../tmpa -r 0 --force #(make repo related)
Pierre-Yves David
clfilter: fix a false positive in the test-obsolete.t...
r18015 pushing to ../tmpa
searching for changes
Pierre-Yves David
clfilter: use filtering in `visibleheads`...
r18104 warning: repository is unrelated
Pierre-Yves David
clfilter: fix a false positive in the test-obsolete.t...
r18015 adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Pierre-Yves David
push: refuse to push bumped changeset...
r17834 $ hg push ../tmpa
pushing to ../tmpa
searching for changes
abort: push includes bumped changeset: 5601fb93a350!
[255]
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 Fixing "bumped" situation
We need to create a clone of 5 and add a special marker with a flag
$ hg up '5^'
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg revert -ar 5
adding new_3_c
$ hg ci -m 'add n3w_3_c'
created new head
$ hg debugobsolete -d '1338 0' --flags 1 `getid new_3_c` `getid n3w_3_c`
$ hg log -r 'bumped()'
$ hg log -G
@ changeset: 6:6f9641995072
| tag: tip
| parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add n3w_3_c
|
| o changeset: 2:245bde4270cd
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_c
|
o changeset: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add b
|
o changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 $ cd ..
Exchange Test
============================
Destination repo does not have any data
---------------------------------------
Pierre-Yves David
discovery: outgoing pass unfiltered repo to findcommonincoming (issue3776)...
r18493 Simple incoming test
$ hg init tmpc
$ cd tmpc
$ hg incoming ../tmpb
comparing with ../tmpb
changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
changeset: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add b
changeset: 2:245bde4270cd
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add original_c
changeset: 6:6f9641995072
tag: tip
parent: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add n3w_3_c
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 Try to pull markers
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 (extinct changeset are excluded but marker are pushed)
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075
$ hg pull ../tmpb
pulling from ../tmpb
requesting all changes
adding changesets
adding manifests
adding file changes
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 added 4 changesets with 4 changes to 4 files (+1 heads)
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hg debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 {'date': '1338 0', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126
Rollback//Transaction support
$ hg debugobsolete -d '1340 0' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
$ hg debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 {'date': '1338 0', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 {'date': '1340 0', 'user': 'test'}
$ hg rollback -n
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 repository tip rolled back to revision 3 (undo debugobsolete)
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 $ hg rollback
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 repository tip rolled back to revision 3 (undo debugobsolete)
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 $ hg debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075
$ cd ..
Pierre-Yves David
test: minor documentation fix...
r18492 Try to push markers
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075
$ hg init tmpd
$ hg -R tmpb push tmpd
pushing to tmpd
searching for changes
adding changesets
adding manifests
adding file changes
Pierre-Yves David
push: refuse to push obsolete changesets...
r17169 added 4 changesets with 4 changes to 4 files (+1 heads)
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 $ hg -R tmpd debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075
Patrick Mezard
push: do not try to push remote obsolete if local has none
r17252 Check obsolete keys are exchanged only if source has an obsolete store
$ hg init empty
$ hg --config extensions.debugkeys=debugkeys.py -R empty push tmpd
pushing to tmpd
no changes found
listkeys phases
listkeys bookmarks
[1]
Pierre-Yves.David@ens-lyon.org
clone: copy obsolete markers during local clone...
r17249 clone support
(markers are copied and extinct changesets are included to allow hardlinks)
$ hg clone tmpb clone-dest
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R clone-dest log -G --hidden
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 @ changeset: 6:6f9641995072
Pierre-Yves.David@ens-lyon.org
clone: copy obsolete markers during local clone...
r17249 | tag: tip
| parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 | summary: add n3w_3_c
|
| x changeset: 5:5601fb93a350
|/ parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add new_3_c
Pierre-Yves.David@ens-lyon.org
clone: copy obsolete markers during local clone...
r17249 |
| x changeset: 4:ca819180edb9
|/ parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add new_2_c
|
| x changeset: 3:cdbce2fbb163
|/ parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add new_c
|
| o changeset: 2:245bde4270cd
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_c
|
o changeset: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add b
|
o changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
$ hg -R clone-dest debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
clone: copy obsolete markers during local clone...
r17249 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
clone: copy obsolete markers during local clone...
r17249
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075
Destination repo have existing data
---------------------------------------
On pull
$ hg init tmpe
$ cd tmpe
$ hg debugobsolete -d '1339 0' 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339
$ hg pull ../tmpb
pulling from ../tmpb
requesting all changes
adding changesets
adding manifests
adding file changes
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 added 4 changesets with 4 changes to 4 files (+1 heads)
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hg debugobsolete
2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075
Pierre-Yves David
obsolete: compute unstable changeset...
r17171
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 On push
$ hg push ../tmpc
pushing to ../tmpc
searching for changes
no changes found
[1]
$ hg -R ../tmpc debugobsolete
Pierre-Yves David
debugobsolete: add --flags option...
r17830 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C {'date': '56 12', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 {'date': '1338 0', 'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 {'date': '1339 0', 'user': 'test'}
Pierre-Yves David
obsolete: compute unstable changeset...
r17171
detect outgoing obsolete and unstable
---------------------------------------
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 o changeset: 3:6f9641995072
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 | tag: tip
| parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 | summary: add n3w_3_c
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 |
| o changeset: 2:245bde4270cd
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_c
|
o changeset: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add b
|
o changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 $ hg up 'desc("n3w_3_c")'
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 $ mkcommit original_d
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 $ mkcommit original_e
$ hg debugobsolete `getid original_d` -d '0 0'
$ hg log -r 'obsolete()'
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 changeset: 4:94b33453f93b
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add original_d
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G -r '::unstable()'
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 @ changeset: 5:cda648ca50f5
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 | tag: tip
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_e
|
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 x changeset: 4:94b33453f93b
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_d
|
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 o changeset: 3:6f9641995072
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 | parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 | summary: add n3w_3_c
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 |
o changeset: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add b
|
o changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206
refuse to push obsolete changeset
$ hg push ../tmpc/ -r 'desc("original_d")'
pushing to ../tmpc/
searching for changes
push includes an xxx changeset: yyyyyyyyyy
obsolete: simplify push abort message...
r17833 abort: push includes obsolete changeset: 94b33453f93b!
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 [255]
refuse to push unstable changeset
Pierre-Yves David
push: refuse to push unstable changesets without force...
r17172 $ hg push ../tmpc/
pushing to ../tmpc/
searching for changes
push includes an xxx changeset: yyyyyyyyyy
obsolete: simplify push abort message...
r17833 abort: push includes unstable changeset: cda648ca50f5!
Pierre-Yves David
push: refuse to push unstable changesets without force...
r17172 [255]
Pierre-Yves David
obsolete: compute extinct changesets...
r17173
Test that extinct changeset are properly detected
$ hg log -r 'extinct()'
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206
Don't try to push extinct changeset
$ hg init ../tmpf
$ hg out ../tmpf
comparing with ../tmpf
searching for changes
changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
changeset: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add b
changeset: 2:245bde4270cd
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add original_c
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 changeset: 3:6f9641995072
Pierre-Yves David
obsolete: compute extinct changesets...
r17173 parent: 1:7c3bad9141dc
user: test
date: Thu Jan 01 00:00:00 1970 +0000
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 summary: add n3w_3_c
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 changeset: 4:94b33453f93b
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add original_d
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 changeset: 5:cda648ca50f5
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add original_e
Pierre-Yves David
obsolete: compute extinct changesets...
r17173
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 $ hg push ../tmpf -f # -f because be push unstable too
pushing to ../tmpf
searching for changes
adding changesets
adding manifests
adding file changes
added 6 changesets with 6 changes to 6 files (+1 heads)
no warning displayed
$ hg push ../tmpf
pushing to ../tmpf
searching for changes
no changes found
[1]
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214
Do not warn about new head when the new head is a successors of a remote one
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 @ changeset: 5:cda648ca50f5
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 | tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_e
|
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 x changeset: 4:94b33453f93b
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_d
|
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 o changeset: 3:6f9641995072
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 | parent: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 | summary: add n3w_3_c
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 |
| o changeset: 2:245bde4270cd
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add original_c
|
o changeset: 1:7c3bad9141dc
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add b
|
o changeset: 0:1f0dee641bb7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add a
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 $ hg up -q 'desc(n3w_3_c)'
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 $ mkcommit obsolete_e
created new head
$ hg debugobsolete `getid 'original_e'` `getid 'obsolete_e'`
Pierre-Yves David
discovery: outgoing pass unfiltered repo to findcommonincoming (issue3776)...
r18493 $ hg outgoing ../tmpf # parasite hg outgoing testin
comparing with ../tmpf
searching for changes
changeset: 6:3de5eca88c00
tag: tip
parent: 3:6f9641995072
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add obsolete_e
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 $ hg push ../tmpf
pushing to ../tmpf
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Pierre-Yves David
obsolete: warns if markers exist in a repo where the feature is not enabled...
r17297
Mads Kiilerich
tests: fix for windows - slashes and no serve
r18506 #if serve
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 check hgweb does not explode
====================================
$ hg unbundle $TESTDIR/bundles/hgweb+obs.hg
adding changesets
adding manifests
adding file changes
added 62 changesets with 63 changes to 9 files (+60 heads)
(run 'hg heads .' to see heads, 'hg merge' to merge)
$ for node in `hg log -r 'desc(babar_)' --template '{node}\n'`;
> do
> hg debugobsolete $node
> done
$ hg up tip
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
Pierre-Yves David
hgweb: ignore filtered revision in revnav...
r18426 check changelog view
$ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'shortlog/'
200 Script output follows
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401
Pierre-Yves David
hgweb: walk the graph through the changelog...
r18428 check graph view
$ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'graph'
200 Script output follows
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 check filelog view
$ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'log/'`hg id --debug --id`/'babar'
200 Script output follows
Pierre-Yves David
hgweb: add a `web.view` to control filtering...
r18522
$ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'rev/68'
200 Script output follows
$ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'rev/67'
Matt Mackall
test-obsolete: now gets 404 for hidden change
r18532 404 Not Found
Pierre-Yves David
hgweb: add a `web.view` to control filtering...
r18522 [1]
check that web.view config option:
Augie Fackler
test-obsolete.t: migrate to killdaemons from kill `cat pidfile`
r18596 $ "$TESTDIR/killdaemons.py" hg.pid
Pierre-Yves David
hgweb: add a `web.view` to control filtering...
r18522 $ cat >> .hg/hgrc << EOF
> [web]
> view=all
> EOF
$ wait
$ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'rev/67'
200 Script output follows
Augie Fackler
test-obsolete.t: migrate to killdaemons from kill `cat pidfile`
r18596 $ "$TESTDIR/killdaemons.py" hg.pid
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401
Thomas Arendsen Hein
obsolete: fix typos in comments introduced by 6955d69a52a4
r17306 Checking _enable=False warning if obsolete marker exists
Pierre-Yves David
obsolete: warns if markers exist in a repo where the feature is not enabled...
r17297
$ echo '[extensions]' >> $HGRCPATH
$ echo "obs=!" >> $HGRCPATH
$ hg log -r tip
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 obsolete feature not enabled but 68 markers found!
changeset: 68:c15e9edfca13
Pierre-Yves David
obsolete: warns if markers exist in a repo where the feature is not enabled...
r17297 tag: tip
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 parent: 7:50c51b361e60
Pierre-Yves David
obsolete: warns if markers exist in a repo where the feature is not enabled...
r17297 user: test
date: Thu Jan 01 00:00:00 1970 +0000
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 summary: add celestine
Pierre-Yves David
obsolete: warns if markers exist in a repo where the feature is not enabled...
r17297
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
reenable for later test
$ echo '[extensions]' >> $HGRCPATH
$ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
Mads Kiilerich
tests: fix for windows - slashes and no serve
r18506 #endif
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
Test incoming/outcoming with changesets obsoleted remotely, known locally
===============================================================================
This test issue 3805
$ hg init repo-issue3805
$ cd repo-issue3805
$ echo "foo" > foo
$ hg ci -Am "A"
adding foo
$ hg clone . ../other-issue3805
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo "bar" >> foo
$ hg ci --amend
$ cd ../other-issue3805
$ hg log -G
@ changeset: 0:193e9254ce7e
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: A
$ hg log -G -R ../repo-issue3805
@ changeset: 2:3816541e5485
tag: tip
parent: -1:000000000000
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: A
$ hg incoming
Simon Heimberg
tests: append glob to filename output when required (windows)...
r18679 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568 searching for changes
changeset: 2:3816541e5485
tag: tip
parent: -1:000000000000
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: A
$ hg incoming --bundle ../issue3805.hg
Simon Heimberg
tests: append glob to filename output when required (windows)...
r18679 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568 searching for changes
changeset: 2:3816541e5485
tag: tip
parent: -1:000000000000
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: A
$ hg outgoing
Simon Heimberg
tests: append glob to filename output when required (windows)...
r18679 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568 searching for changes
no changes found
[1]
#if serve
$ hg serve -R ../repo-issue3805 -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
$ hg incoming http://localhost:$HGPORT
comparing with http://localhost:$HGPORT/
searching for changes
changeset: 1:3816541e5485
tag: tip
parent: -1:000000000000
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: A
$ hg outgoing http://localhost:$HGPORT
comparing with http://localhost:$HGPORT/
searching for changes
no changes found
[1]
$ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
#endif
Pierre-Yves David
outgoing: fix possible filtering crash in outgoing (issue3814)...
r18617
This test issue 3814
(nothing to push but locally hidden changeset)
$ cd ..
$ hg init repo-issue3814
$ cd repo-issue3805
$ hg push -r 3816541e5485 ../repo-issue3814
pushing to ../repo-issue3814
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
$ hg out ../repo-issue3814
comparing with ../repo-issue3814
searching for changes
no changes found
[1]
Sean Farley
repoview: add non-global tags to candidate list for blocking hidden changesets...
r20807 Test that a local tag blocks a changeset from being hidden
Pierre-Yves David
outgoing: fix possible filtering crash in outgoing (issue3814)...
r18617
Sean Farley
repoview: add non-global tags to candidate list for blocking hidden changesets...
r20807 $ hg tag -l visible -r 0 --hidden
$ hg log -G
@ changeset: 2:3816541e5485
tag: tip
parent: -1:000000000000
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: A
x changeset: 0:193e9254ce7e
tag: visible
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: A
Angel Ezquerra
repoview: do not crash when localtags refers to non existing revisions...
r21823 Test that removing a local tag does not cause some commands to fail
$ hg tag -l -r tip tiptag
$ hg tags
tiptag 2:3816541e5485
tip 2:3816541e5485
visible 0:193e9254ce7e
$ hg --config extensions.strip= strip -r tip --no-backup
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg tags
visible 0:193e9254ce7e
tip 0:193e9254ce7e