##// END OF EJS Templates
context: possibly yield initial fctx in blockdescendants()...
context: possibly yield initial fctx in blockdescendants() If initial 'fctx' has changes in line range with respect to its parents, we yield it first. This makes 'followlines(..., descend=True)' consistent with 'descendants()' revset which yields the starting revision. We reuse one iteration of blockancestors() which does exactly what we want. In test-annotate.t, adjust 'startrev' in one case to cover the situation where the starting revision does not touch specified line range.

File last commit:

r31703:cda83a1b default
r31992:3e47a40d default
Show More
test-obsolete.t
1284 lines | 42.2 KiB | text/troff | Tads3Lexer
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 $ cat >> $HGRCPATH << EOF
> [phases]
> # public changeset are not obsolete
> publish=false
Pierre-Yves David
test-obsolete: better logging template...
r21978 > [ui]
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 > logtemplate="{rev}:{node|short} ({phase}{if(obsolete, ' *{obsolete}*')}{if(troubles, ' {troubles}')}) [{tags} {bookmarks}] {desc|firstline}\n"
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 > 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() {
Matt Harbison
test-obsolete: use 'log -T {node}' instead of 'id --debug -i' to lookup hash...
r24162 > hg log -T "{node}\n" --hidden -r "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
Durham Goode
obsolete: add readonly flag to obstore constructor...
r22950 abort: creating obsolete markers is not enabled on this repo
Pierre-Yves David
obsolete: introduce an `_enabled` switch to disable the feature by default...
r17296 [255]
Enabling it
Durham Goode
obsolete: update tests to use obsolete options...
r22955 $ cat >> $HGRCPATH << EOF
> [experimental]
> evolution=createmarkers,exchange
Pierre-Yves David
obsolete: introduce an `_enabled` switch to disable the feature by default...
r17296 > EOF
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
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {'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
Pierre-Yves David
test-obsolete: better logging template...
r21978 -1:000000000000 (public) [tip ]
Pierre-Yves David
changectx: fix the handling of `tip`...
r18464 $ hg up --hidden tip --quiet
Pierre-Yves David
obsstore.create: add a simple safeguard against cyclic markers...
r22177
Killing a single changeset with itself should fail
(simple local safeguard)
$ hg debugobsolete `getid kill_me` `getid kill_me`
abort: bad obsmarker input: in-marker cycle with 97b7c2d76b1845ed3eb988cd612611e72406cef0
[255]
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071 $ cd ..
Killing a single changeset with replacement
Durham Goode
obsstore: fix defaultformat option passing...
r22948 (and testing the format option)
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071
$ 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
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 $ hg debugobsolete --config format.obsstore-version=0 --flag 12 `getid original_c` `getid new_c` -d '121 120'
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
Sune Foldager
debugrevlog: add chainlen column to --dump output
r22311 # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen
0 -1 -1 0 59 0 0 0 0 58 58 0 1 0
1 0 -1 59 118 59 59 0 0 58 116 0 1 0
Siddharth Agarwal
revlog: store fulltext when compressed delta is bigger than it...
r23285 2 1 -1 118 193 118 118 59 0 76 192 0 1 0
3 1 -1 193 260 193 193 59 0 66 258 0 2 0
Pierre-Yves.David@ens-lyon.org
debugobsolete: list all obsolete marker if no argument are specified
r17074 $ hg debugobsolete
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves.David@ens-lyon.org
command: creation of obsolete marker...
r17071
Durham Goode
obsstore: fix defaultformat option passing...
r22948 (check for version number of the obsstore)
$ dd bs=1 count=1 if=.hg/store/obsstore 2>/dev/null
\x00 (no-eol) (esc)
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
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'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
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075
Kostia Balytskyi
debugobsolete: add an option to show marker index...
r28613 Test the --index option of debugobsolete command
$ hg debugobsolete --index
0 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
1 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
2 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
3 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
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
test-obsolete: better logging template...
r21978 @ 5:5601fb93a350 (draft) [tip ] add new_3_c
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 1:7c3bad9141dc (draft) [ ] add b
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 0:1f0dee641bb7 (draft) [ ] add a
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119
Pierre-Yves David
clfilter: ensure that hidden filtering is working on all commands...
r18268 check that heads does not report them
$ hg heads
Pierre-Yves David
test-obsolete: better logging template...
r21978 5:5601fb93a350 (draft) [tip ] add new_3_c
Pierre-Yves David
clfilter: ensure that hidden filtering is working on all commands...
r18268 $ hg heads --hidden
Pierre-Yves David
test-obsolete: better logging template...
r21978 5:5601fb93a350 (draft) [tip ] add new_3_c
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c
3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c
2:245bde4270cd (draft *obsolete*) [ ] add original_c
Pierre-Yves David
clfilter: ensure that hidden filtering is working on all commands...
r18268
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)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 3 draft
Pierre-Yves David
clfilter: ensure that hidden filtering is working on all commands...
r18268 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)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 6 draft
Pierre-Yves David
clfilter: ensure that hidden filtering is working on all commands...
r18268 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
Pierre-Yves David
test-obsolete: better logging template...
r21978 5:5601fb93a350 (draft) [tip ] add new_3_c
Pierre-Yves David
clfilter: stronger detection of filtered changeset in changectx.__init__...
r18423 $ hg log -r 6
abort: unknown revision '6'!
[255]
$ hg log -r 4
Pierre-Yves David
repoview: issue a special message when filtering hidden changesets...
r23046 abort: hidden revision '4'!
(use --hidden to access hidden revisions)
Pierre-Yves David
clfilter: stronger detection of filtered changeset in changectx.__init__...
r18423 [255]
Yuya Nishihara
revset: have rev() drop out-of-range or filtered rev explicitly (issue4396)...
r23062 $ hg debugrevspec 'rev(6)'
$ hg debugrevspec 'rev(4)'
Yuya Nishihara
revset: extend fullreposet to make "null" revision magically appears in set...
r24204 $ hg debugrevspec 'null'
-1
Pierre-Yves David
clfilter: stronger detection of filtered changeset in changectx.__init__...
r18423
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
Denis Laxalde
templatekw: add a "troubles" template keyword...
r30712 @ 5:5601fb93a350 (draft bumped) [tip ] add new_3_c
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 | o 2:245bde4270cd (public) [ ] add original_c
|/
o 1:7c3bad9141dc (public) [ ] add b
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 0:1f0dee641bb7 (public) [ ] add a
Pierre-Yves David
graphlog: display obsolete changeset as "x"...
r17119
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()'
Denis Laxalde
templatekw: add a "troubles" template keyword...
r30712 5:5601fb93a350 (draft bumped) [tip ] add new_3_c
Pierre-Yves David
revset: add a bumped revset...
r17829
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
Laurent Charignon
summary: add troubles list to the output of hg summary...
r27385 $ hg summary
Denis Laxalde
summary: add evolution "troubles" information to summary output...
r30715 parent: 5:5601fb93a350 tip (bumped)
Laurent Charignon
summary: add troubles list to the output of hg summary...
r27385 add new_3_c
branch: default
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
phases: 1 draft
Matt Harbison
summary: print unstable, bumped and divergent as unconditionally plural...
r27722 bumped: 1 changesets
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 $ 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
Pierre-Yves David
test-obsolete: better logging template...
r21978 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 | o 2:245bde4270cd (public) [ ] add original_c
|/
o 1:7c3bad9141dc (public) [ ] add b
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 0:1f0dee641bb7 (public) [ ] add a
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831
Yuya Nishihara
archive: look for first visible revision to build repo identity (issue4591)...
r24681 $ cd ..
Revision 0 is hidden
--------------------
$ hg init rev0hidden
$ cd rev0hidden
$ mkcommit kill0
$ hg up -q null
$ hg debugobsolete `getid kill0`
$ mkcommit a
$ mkcommit b
Should pick the first visible revision as "repo" node
$ hg archive ../archive-null
$ cat ../archive-null/.hg_archival.txt
repo: 1f0dee641bb7258c56bd60e93edfa2405381c41e
node: 7c3bad9141dcb46ff89abf5f61856facd56e476c
branch: default
latesttag: null
latesttagdistance: 2
changessincelatesttag: 2
Pierre-Yves David
obsolete: add a flag that allows fixing "bumped" changeset...
r17831
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
Pierre-Yves David
test-obsolete: better logging template...
r21978 0:1f0dee641bb7 (public) [ ] add a
1:7c3bad9141dc (public) [ ] add b
2:245bde4270cd (public) [ ] add original_c
6:6f9641995072 (draft) [tip ] add n3w_3_c
Pierre-Yves David
discovery: outgoing pass unfiltered repo to findcommonincoming (issue3776)...
r18493
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
test: use bundle2 for exchange in test-obsolete...
r25351 5 new obsolescence markers
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
obsolete: sort obsmarkers during exchange...
r25118 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'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
obsolete: sort obsmarkers during exchange...
r25118 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:22:20 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: write obsolete marker inside a transaction...
r17126 $ 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
obsolete: sort obsmarkers during exchange...
r25118 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'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
test: use bundle2 for exchange in test-obsolete...
r25351 5 new obsolescence markers
Pierre-Yves David
test-obsolete: sort the output of debugobsolete...
r22349 $ hg -R tmpd debugobsolete | sort
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
test-obsolete: sort the output of debugobsolete...
r22349 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'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
Pierre-Yves David
push: perform phases discovery before the push...
r22019 listkeys phases
Pierre-Yves David
push: move bookmark discovery with other discovery steps...
r22239 listkeys bookmarks
Patrick Mezard
push: do not try to push remote obsolete if local has none
r17252 no changes found
listkeys phases
[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
test-obsolete: better logging template...
r21978 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
Pierre-Yves.David@ens-lyon.org
clone: copy obsolete markers during local clone...
r17249 |
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c
Pierre-Yves David
test-obsolete: better logging template...
r21978 |/
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c
Pierre-Yves David
test-obsolete: better logging template...
r21978 |/
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c
Pierre-Yves David
test-obsolete: better logging template...
r21978 |/
| o 2:245bde4270cd (public) [ ] add original_c
|/
o 1:7c3bad9141dc (public) [ ] add b
Pierre-Yves.David@ens-lyon.org
clone: copy obsolete markers during local clone...
r17249 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 0:1f0dee641bb7 (public) [ ] add a
Pierre-Yves.David@ens-lyon.org
clone: copy obsolete markers during local clone...
r17249
$ hg -R clone-dest debugobsolete
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'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
Pierre-Yves David
test-obsolete: change a marker so it is relevant to the exchanged set...
r22348 $ hg debugobsolete -d '1339 0' 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00
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
test: use bundle2 for exchange in test-obsolete...
r25351 5 new obsolescence markers
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
test-obsolete: change a marker so it is relevant to the exchanged set...
r22348 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'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
Pierre-Yves David
test: use bundle2 for exchange in test-obsolete...
r25351 1 new obsolescence markers
Pierre-Yves.David@ens-lyon.org
obsolete: exchange obsolete marker over pushkey...
r17075 [1]
$ hg -R ../tmpc debugobsolete
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: explicitly display date in the output...
r22220 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
Pierre-Yves David
test-obsolete: change a marker so it is relevant to the exchanged set...
r22348 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'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
test-obsolete: better logging template...
r21978 o 3:6f9641995072 (draft) [tip ] add n3w_3_c
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 | o 2:245bde4270cd (public) [ ] add original_c
|/
o 1:7c3bad9141dc (public) [ ] add b
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 0:1f0dee641bb7 (public) [ ] add a
Pierre-Yves David
obsolete: compute unstable changeset...
r17171
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
Pierre-Yves David
debugobsolete: add a way to record parent information...
r22272 $ hg debugobsolete --record-parents `getid original_d` -d '0 0'
$ hg debugobsolete | grep `getid original_d`
94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 $ hg log -r 'obsolete()'
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 4:94b33453f93b (draft *obsolete*) [ ] add original_d
Laurent Charignon
summary: add troubles list to the output of hg summary...
r27385 $ hg summary
Denis Laxalde
summary: add evolution "troubles" information to summary output...
r30715 parent: 5:cda648ca50f5 tip (unstable)
Laurent Charignon
summary: add troubles list to the output of hg summary...
r27385 add original_e
branch: default
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
phases: 3 draft
Matt Harbison
summary: print unstable, bumped and divergent as unconditionally plural...
r27722 unstable: 1 changesets
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 $ hg log -G -r '::unstable()'
Denis Laxalde
templatekw: add a "troubles" template keyword...
r30712 @ 5:cda648ca50f5 (draft unstable) [tip ] add original_e
Pierre-Yves David
test-obsolete: better logging template...
r21978 |
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 3:6f9641995072 (draft) [ ] add n3w_3_c
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 1:7c3bad9141dc (public) [ ] add b
Pierre-Yves David
obsolete: compute unstable changeset...
r17171 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 0:1f0dee641bb7 (public) [ ] add a
Pierre-Yves David
obsolete: compute unstable changeset...
r17171
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
Pierre-Yves David
test-obsolete: better logging template...
r21978 0:1f0dee641bb7 (public) [ ] add a
1:7c3bad9141dc (public) [ ] add b
2:245bde4270cd (public) [ ] add original_c
3:6f9641995072 (draft) [ ] add n3w_3_c
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 4:94b33453f93b (draft *obsolete*) [ ] add original_d
Denis Laxalde
templatekw: add a "troubles" template keyword...
r30712 5:cda648ca50f5 (draft unstable) [tip ] add original_e
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)
Pierre-Yves David
test: use bundle2 for exchange in test-obsolete...
r25351 7 new obsolescence markers
Pierre-Yves David
obsolete: do not exchange extinct changesets...
r17206
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
Denis Laxalde
templatekw: add a "troubles" template keyword...
r30712 @ 5:cda648ca50f5 (draft unstable) [tip ] add original_e
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 |
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
Pierre-Yves David
test-obsolete: better logging template...
r21978 |
o 3:6f9641995072 (draft) [ ] add n3w_3_c
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 | o 2:245bde4270cd (public) [ ] add original_c
|/
o 1:7c3bad9141dc (public) [ ] add b
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214 |
Pierre-Yves David
test-obsolete: better logging template...
r21978 o 0:1f0dee641bb7 (public) [ ] add a
Pierre-Yves David
checkheads: take future obsoleted heads into account...
r17214
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
Pierre-Yves David
test-obsolete: better logging template...
r21978 6:3de5eca88c00 (draft) [tip ] 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
test: use bundle2 for exchange in test-obsolete...
r25351 1 new obsolescence markers
Pierre-Yves David
obsolete: warns if markers exist in a repo where the feature is not enabled...
r17297
Pierre-Yves David
debugobsolete: add a --rev argument...
r22274 test relevance computation
---------------------------------------
Checking simple case of "marker relevance".
Reminder of the repo situation
$ hg log --hidden --graph
@ 6:3de5eca88c00 (draft) [tip ] add obsolete_e
|
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 5:cda648ca50f5 (draft *obsolete*) [ ] add original_e
Pierre-Yves David
debugobsolete: add a --rev argument...
r22274 | |
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
Pierre-Yves David
debugobsolete: add a --rev argument...
r22274 |/
o 3:6f9641995072 (draft) [ ] add n3w_3_c
|
| o 2:245bde4270cd (public) [ ] add original_c
|/
o 1:7c3bad9141dc (public) [ ] add b
|
o 0:1f0dee641bb7 (public) [ ] add a
List of all markers
$ hg debugobsolete
Pierre-Yves David
test-obsolete: change a marker so it is relevant to the exchanged set...
r22348 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: add a --rev argument...
r22274 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
Pierre-Yves David
obsolete: sort obsmarkers during exchange...
r25118 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
Pierre-Yves David
debugobsolete: add a --rev argument...
r22274 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test'} (glob)
List of changesets with no chain
$ hg debugobsolete --hidden --rev ::2
List of changesets that are included on marker chain
$ hg debugobsolete --hidden --rev 6
cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test'} (glob)
List of changesets with a longer chain, (including a pruned children)
$ hg debugobsolete --hidden --rev 3
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
Pierre-Yves David
test-obsolete: change a marker so it is relevant to the exchanged set...
r22348 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
debugobsolete: add a --rev argument...
r22274 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
List of both
$ hg debugobsolete --hidden --rev 3::6
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
Pierre-Yves David
test-obsolete: change a marker so it is relevant to the exchanged set...
r22348 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows...
r23094 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
Pierre-Yves David
debugobsolete: add a --rev argument...
r22274 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test'} (glob)
cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
Yuya Nishihara
debugobsolete: add formatter support (issue5134)...
r29795 List of all markers in JSON
$ hg debugobsolete -Tjson
[
{
"date": [1339.0, 0],
"flag": 0,
"metadata": {"user": "test"},
"precnode": "1339133913391339133913391339133913391339",
"succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
},
{
"date": [1339.0, 0],
"flag": 0,
"metadata": {"user": "test"},
"precnode": "1337133713371337133713371337133713371337",
"succnodes": ["5601fb93a350734d935195fee37f4054c529ff39"]
},
{
"date": [121.0, 120],
"flag": 12,
"metadata": {"user": "test"},
"precnode": "245bde4270cd1072a27757984f9cda8ba26f08ca",
"succnodes": ["cdbce2fbb16313928851e97e0d85413f3f7eb77f"]
},
{
"date": [1338.0, 0],
"flag": 1,
"metadata": {"user": "test"},
"precnode": "5601fb93a350734d935195fee37f4054c529ff39",
"succnodes": ["6f96419950729f3671185b847352890f074f7557"]
},
{
"date": [1338.0, 0],
"flag": 0,
"metadata": {"user": "test"},
"precnode": "ca819180edb99ed25ceafb3e9584ac287e240b00",
"succnodes": ["1337133713371337133713371337133713371337"]
},
{
"date": [1337.0, 0],
"flag": 0,
"metadata": {"user": "test"},
"precnode": "cdbce2fbb16313928851e97e0d85413f3f7eb77f",
"succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
},
{
"date": [0.0, 0],
"flag": 0,
"metadata": {"user": "test"},
"parentnodes": ["6f96419950729f3671185b847352890f074f7557"],
"precnode": "94b33453f93bdb8d457ef9b770851a618bf413e1",
"succnodes": []
},
{
"date": *, (glob)
"flag": 0,
"metadata": {"user": "test"},
"precnode": "cda648ca50f50482b7055c0b0c4c117bba6733d9",
"succnodes": ["3de5eca88c00aa039da7399a220f4a5221faa585"]
}
]
Template keywords
$ hg debugobsolete -r6 -T '{succnodes % "{node|short}"} {date|shortdate}\n'
3de5eca88c00 ????-??-?? (glob)
$ hg debugobsolete -r6 -T '{join(metadata % "{key}={value}", " ")}\n'
user=test
$ hg debugobsolete -r6 -T '{metadata}\n'
'user': 'test'
$ hg debugobsolete -r6 -T '{flag} {get(metadata, "user")}\n'
0 test
Pierre-Yves David
obsolete: experimental flag to get debug about obsmarkers exchange...
r24733 Test the debug output for exchange
----------------------------------
Pierre-Yves David
tests: remove all remaining usage of experimental.bundle2-exp...
r29688 $ hg pull ../tmpb --config 'experimental.obsmarkers-exchange-debug=True' # bundle2
Pierre-Yves David
obsolete: experimental flag to get debug about obsmarkers exchange...
r24733 pulling from ../tmpb
searching for changes
no changes found
obsmarker-exchange: 346 bytes received
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
Matt Harbison
test-obsolete: stabilize output on platforms without 'serve' support...
r30733 #if serve
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 $ 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
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'shortlog/'
Pierre-Yves David
hgweb: ignore filtered revision in revnav...
r18426 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
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'graph'
Pierre-Yves David
hgweb: walk the graph through the changelog...
r18428 200 Script output follows
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 check filelog view
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'log/'`hg log -r . -T "{node}"`/'babar'
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 200 Script output follows
Pierre-Yves David
hgweb: add a `web.view` to control filtering...
r18522
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/68'
Pierre-Yves David
hgweb: add a `web.view` to control filtering...
r18522 200 Script output follows
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ 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:
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ 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
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
Pierre-Yves David
hgweb: add a `web.view` to control filtering...
r18522 200 Script output follows
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ 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
Durham Goode
obsolete: update tests to use obsolete options...
r22955 $ echo '[experimental]' >> $HGRCPATH
$ echo "evolution=" >> $HGRCPATH
Pierre-Yves David
obsolete: warns if markers exist in a repo where the feature is not enabled...
r17297 $ hg log -r tip
Pierre-Yves David
hgweb: add test regarding filtering and hgweb...
r18401 obsolete feature not enabled but 68 markers found!
Pierre-Yves David
test-obsolete: better logging template...
r21978 68:c15e9edfca13 (draft) [tip ] add celestine
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
reenable for later test
Durham Goode
obsolete: update tests to use obsolete options...
r22955 $ echo '[experimental]' >> $HGRCPATH
$ echo "evolution=createmarkers,exchange" >> $HGRCPATH
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
Matt Harbison
test-obsolete: stabilize output on platforms without 'serve' support...
r30733 $ rm hg.pid access.log errors.log
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
Denis Laxalde
test: test "trouble: " line in log output with multiple troubles...
r30711 Several troubles on the same changeset (create an unstable and bumped changeset)
$ hg debugobsolete `getid obsolete_e`
$ hg debugobsolete `getid original_c` `getid babar`
$ hg log --config ui.logtemplate= -r 'bumped() and unstable()'
changeset: 7:50c51b361e60
user: test
date: Thu Jan 01 00:00:00 1970 +0000
trouble: unstable, bumped
summary: add babar
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 test the "obsolete" templatekw
$ hg log -r 'obsolete()'
6:3de5eca88c00 (draft *obsolete*) [ ] add obsolete_e
Denis Laxalde
templatekw: add a "troubles" template keyword...
r30712 test the "troubles" templatekw
$ hg log -r 'bumped() and unstable()'
7:50c51b361e60 (draft unstable bumped) [ ] add babar
Denis Laxalde
templates: display evolution "troubles" in command line style
r30713 test the default cmdline template
$ hg log -T default -r 'bumped()'
changeset: 7:50c51b361e60
user: test
date: Thu Jan 01 00:00:00 1970 +0000
trouble: unstable, bumped
summary: add babar
Denis Laxalde
templates: add "changeset.obsolete" label in command line style...
r31702 $ hg log -T default -r 'obsolete()'
changeset: 6:3de5eca88c00
parent: 3:6f9641995072
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add obsolete_e
Denis Laxalde
templates: display evolution "troubles" in command line style
r30713
Denis Laxalde
summary: add evolution "troubles" information to summary output...
r30715 test summary output
$ hg up -r 'bumped() and unstable()'
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg summary
parent: 7:50c51b361e60 (unstable, bumped)
add babar
branch: default
Matt Harbison
test-obsolete: stabilize output on platforms without 'serve' support...
r30733 commit: (clean)
Denis Laxalde
summary: add evolution "troubles" information to summary output...
r30715 update: 2 new changesets (update)
phases: 4 draft
unstable: 2 changesets
bumped: 1 changesets
Denis Laxalde
summary: display obsolete state of parents...
r31703 $ hg up -r 'obsolete()'
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg summary
parent: 6:3de5eca88c00 (obsolete)
add obsolete_e
branch: default
commit: (clean)
update: 3 new changesets (update)
phases: 4 draft
unstable: 2 changesets
bumped: 1 changesets
Denis Laxalde
summary: add evolution "troubles" information to summary output...
r30715
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
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 $ echo "base" > base
$ hg ci -Am "base"
adding base
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568 $ echo "foo" > foo
$ hg ci -Am "A"
adding foo
$ hg clone . ../other-issue3805
updating to branch default
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568 $ echo "bar" >> foo
$ hg ci --amend
$ cd ../other-issue3805
$ hg log -G
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 @ 1:29f0c6921ddd (draft) [tip ] A
|
o 0:d20a80d4def3 (draft) [ ] base
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
$ hg log -G -R ../repo-issue3805
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 @ 3:323a9c3ddd91 (draft) [tip ] A
|
o 0:d20a80d4def3 (draft) [ ] base
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
$ 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
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 3:323a9c3ddd91 (draft) [tip ] A
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568 $ 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
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 3:323a9c3ddd91 (draft) [tip ] A
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568 $ 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
Pierre-Yves David
discovery: properly filter changeset in 'peer.known' (issue4982)...
r27319 1:29f0c6921ddd (draft) [tip ] A
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
#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
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 2:323a9c3ddd91 (draft) [tip ] A
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568 $ hg outgoing http://localhost:$HGPORT
comparing with http://localhost:$HGPORT/
searching for changes
Pierre-Yves David
discovery: properly filter changeset in 'peer.known' (issue4982)...
r27319 1:29f0c6921ddd (draft) [tip ] A
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Pierre-Yves David
incoming: fix incoming when a local head is remotely filtered (issue3805)...
r18568
#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
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 $ hg push -r 323a9c3ddd91 ../repo-issue3814
Pierre-Yves David
outgoing: fix possible filtering crash in outgoing (issue3814)...
r18617 pushing to ../repo-issue3814
searching for changes
adding changesets
adding manifests
adding file changes
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 added 2 changesets with 2 changes to 2 files
Pierre-Yves David
test: use bundle2 for exchange in test-obsolete...
r25351 2 new obsolescence markers
Pierre-Yves David
outgoing: fix possible filtering crash in outgoing (issue3814)...
r18617 $ 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
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 $ hg tag -l visible -r 1 --hidden
Sean Farley
repoview: add non-global tags to candidate list for blocking hidden changesets...
r20807 $ hg log -G
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 @ 3:323a9c3ddd91 (draft) [tip ] A
|
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 1:29f0c6921ddd (draft *obsolete*) [visible ] A
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 |/
o 0:d20a80d4def3 (draft) [ ] base
Sean Farley
repoview: add non-global tags to candidate list for blocking hidden changesets...
r20807
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
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 tiptag 3:323a9c3ddd91
tip 3:323a9c3ddd91
visible 1:29f0c6921ddd
Angel Ezquerra
repoview: do not crash when localtags refers to non existing revisions...
r21823 $ hg --config extensions.strip= strip -r tip --no-backup
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg tags
Pierre-Yves David
test: add an extra base changeset in test-obsolete.t...
r27318 visible 1:29f0c6921ddd
tip 1:29f0c6921ddd
Matt Harbison
localrepo: don't reintroduce pruned tag entries when tagging...
r24113
Yuya Nishihara
bundlerepo: disable filtering of changelog while constructing revision text...
r24882 Test bundle overlay onto hidden revision
$ cd ..
$ hg init repo-bundleoverlay
$ cd repo-bundleoverlay
$ echo "A" > foo
$ hg ci -Am "A"
adding foo
$ echo "B" >> foo
$ hg ci -m "B"
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo "C" >> foo
$ hg ci -m "C"
created new head
$ hg log -G
@ 2:c186d7714947 (draft) [tip ] C
|
| o 1:44526ebb0f98 (draft) [ ] B
|/
o 0:4b34ecfb0d56 (draft) [ ] A
$ hg clone -r1 . ../other-bundleoverlay
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 1 files
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../other-bundleoverlay
$ echo "B+" >> foo
$ hg ci --amend -m "B+"
$ hg log -G --hidden
@ 3:b7d587542d40 (draft) [tip ] B+
|
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 2:eb95e9297e18 (draft *obsolete*) [ ] temporary amend commit for 44526ebb0f98
Yuya Nishihara
bundlerepo: disable filtering of changelog while constructing revision text...
r24882 | |
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 1:44526ebb0f98 (draft *obsolete*) [ ] B
Yuya Nishihara
bundlerepo: disable filtering of changelog while constructing revision text...
r24882 |/
o 0:4b34ecfb0d56 (draft) [ ] A
$ hg incoming ../repo-bundleoverlay --bundle ../bundleoverlay.hg
comparing with ../repo-bundleoverlay
searching for changes
1:44526ebb0f98 (draft) [ ] B
2:c186d7714947 (draft) [tip ] C
$ hg log -G -R ../bundleoverlay.hg
o 4:c186d7714947 (draft) [tip ] C
|
| @ 3:b7d587542d40 (draft) [ ] B+
|/
o 0:4b34ecfb0d56 (draft) [ ] A
Anton Shestakov
hgweb: use introrev() for finding parents (issue4506)...
r24136 #if serve
Test issue 4506
$ cd ..
$ hg init repo-issue4506
$ cd repo-issue4506
$ echo "0" > foo
$ hg add foo
$ hg ci -m "content-0"
$ hg up null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo "1" > bar
$ hg add bar
$ hg ci -m "content-1"
created new head
$ hg up 0
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg graft 1
grafting 1:1c9eddb02162 "content-1" (tip)
$ hg debugobsolete `hg log -r1 -T'{node}'` `hg log -r2 -T'{node}'`
$ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/1'
Anton Shestakov
hgweb: use introrev() for finding parents (issue4506)...
r24136 404 Not Found
[1]
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'file/tip/bar'
Anton Shestakov
hgweb: use introrev() for finding parents (issue4506)...
r24136 200 Script output follows
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py --headeronly localhost:$HGPORT 'annotate/tip/bar'
Anton Shestakov
hgweb: use introrev() for finding parents (issue4506)...
r24136 200 Script output follows
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Anton Shestakov
hgweb: use introrev() for finding parents (issue4506)...
r24136
#endif
Laurent Charignon
changelog: fix bug in heads computation...
r25297 Test heads computation on pending index changes with obsolescence markers
$ cd ..
$ cat >$TESTTMP/test_extension.py << EOF
> from mercurial import cmdutil
> from mercurial.i18n import _
>
> cmdtable = {}
> command = cmdutil.command(cmdtable)
> @command("amendtransient",[], _('hg amendtransient [rev]'))
> def amend(ui, repo, *pats, **opts):
> def commitfunc(ui, repo, message, match, opts):
> return repo.commit(message, repo['.'].user(), repo['.'].date(), match)
> opts['message'] = 'Test'
> opts['logfile'] = None
> cmdutil.amend(ui, repo, commitfunc, repo['.'], {}, pats, opts)
Jun Wu
tests: explicitly flush output streams...
r28612 > ui.write('%s\n' % repo.changelog.headrevs())
Laurent Charignon
changelog: fix bug in heads computation...
r25297 > EOF
$ cat >> $HGRCPATH << EOF
> [extensions]
> testextension=$TESTTMP/test_extension.py
> EOF
$ hg init repo-issue-nativerevs-pending-changes
$ cd repo-issue-nativerevs-pending-changes
$ mkcommit a
$ mkcommit b
$ hg up ".^"
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo aa > a
$ hg amendtransient
[1, 3]
Laurent Charignon
repoview: invalidate 'visible' filtered revisions when bookmarks change...
r25569
Laurent Charignon
repoview: fix corrupted hiddencache crash Mercurial (issue5042)...
r27917 Check that corrupted hidden cache does not crash
$ printf "" > .hg/cache/hidden
$ hg log -r . -T '{node}' --debug
corrupted hidden cache
8fd96dfc63e51ed5a8af1bec18eb4b19dbf83812 (no-eol)
$ hg log -r . -T '{node}' --debug
8fd96dfc63e51ed5a8af1bec18eb4b19dbf83812 (no-eol)
Matt Harbison
test-obsolete: conditionalize a test dependent on chmod
r28172 #if unix-permissions
Laurent Charignon
repoview: fix corrupted hiddencache crash Mercurial (issue5042)...
r27917 Check that wrong hidden cache permission does not crash
$ chmod 000 .hg/cache/hidden
$ hg log -r . -T '{node}' --debug
cannot read hidden cache
error writing hidden changesets cache
8fd96dfc63e51ed5a8af1bec18eb4b19dbf83812 (no-eol)
Matt Harbison
test-obsolete: conditionalize a test dependent on chmod
r28172 #endif
Laurent Charignon
repoview: fix corrupted hiddencache crash Mercurial (issue5042)...
r27917
Laurent Charignon
repoview: invalidate 'visible' filtered revisions when bookmarks change...
r25569 Test cache consistency for the visible filter
1) We want to make sure that the cached filtered revs are invalidated when
bookmarks change
$ cd ..
$ cat >$TESTTMP/test_extension.py << EOF
Augie Fackler
test-obsolete: update extension in test to actually work...
r29065 > import weakref
Laurent Charignon
repoview: invalidate 'visible' filtered revisions when bookmarks change...
r25569 > from mercurial import cmdutil, extensions, bookmarks, repoview
> def _bookmarkchanged(orig, bkmstoreinst, *args, **kwargs):
Augie Fackler
test-obsolete: update extension in test to actually work...
r29065 > reporef = weakref.ref(bkmstoreinst._repo)
> def trhook(tr):
> repo = reporef()
> hidden1 = repoview.computehidden(repo)
> hidden = repoview.filterrevs(repo, 'visible')
> if sorted(hidden1) != sorted(hidden):
> print "cache inconsistency"
> bkmstoreinst._repo.currenttransaction().addpostclose('test_extension', trhook)
> orig(bkmstoreinst, *args, **kwargs)
Laurent Charignon
repoview: invalidate 'visible' filtered revisions when bookmarks change...
r25569 > def extsetup(ui):
Augie Fackler
test-obsolete: update extension in test to actually work...
r29065 > extensions.wrapfunction(bookmarks.bmstore, 'recordchange',
> _bookmarkchanged)
Laurent Charignon
repoview: invalidate 'visible' filtered revisions when bookmarks change...
r25569 > EOF
$ hg init repo-cache-inconsistency
$ cd repo-issue-nativerevs-pending-changes
$ mkcommit a
a already tracked!
$ mkcommit b
$ hg id
13bedc178fce tip
$ echo "hello" > b
$ hg commit --amend -m "message"
$ hg book bookb -r 13bedc178fce --hidden
$ hg log -r 13bedc178fce
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 5:13bedc178fce (draft *obsolete*) [ bookb] add b
Laurent Charignon
repoview: invalidate 'visible' filtered revisions when bookmarks change...
r25569 $ hg book -d bookb
$ hg log -r 13bedc178fce
abort: hidden revision '13bedc178fce'!
(use --hidden to access hidden revisions)
[255]
Augie Fackler
test-obsolete: update extension in test to actually work...
r29065 Empty out the test extension, as it isn't compatible with later parts
of the test.
$ echo > $TESTTMP/test_extension.py
Pierre-Yves David
bundlerepo: properly handle hidden linkrev in filelog (issue4945)...
r28220 Test ability to pull changeset with locally applying obsolescence markers
(issue4945)
Laurent Charignon
repoview: invalidate 'visible' filtered revisions when bookmarks change...
r25569
Pierre-Yves David
bundlerepo: properly handle hidden linkrev in filelog (issue4945)...
r28220 $ cd ..
$ hg init issue4845
$ cd issue4845
Laurent Charignon
repoview: invalidate 'visible' filtered revisions when bookmarks change...
r25569
Pierre-Yves David
bundlerepo: properly handle hidden linkrev in filelog (issue4945)...
r28220 $ echo foo > f0
$ hg add f0
$ hg ci -m '0'
$ echo foo > f1
$ hg add f1
$ hg ci -m '1'
$ echo foo > f2
$ hg add f2
$ hg ci -m '2'
$ echo bar > f2
$ hg commit --amend --config experimetnal.evolution=createmarkers
$ hg log -G
@ 4:b0551702f918 (draft) [tip ] 2
|
o 1:e016b03fd86f (draft) [ ] 1
|
o 0:a78f55e5508c (draft) [ ] 0
$ hg log -G --hidden
@ 4:b0551702f918 (draft) [tip ] 2
|
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 3:f27abbcc1f77 (draft *obsolete*) [ ] temporary amend commit for e008cf283490
Pierre-Yves David
bundlerepo: properly handle hidden linkrev in filelog (issue4945)...
r28220 | |
Denis Laxalde
templatekw: add an "obsolete" keyword...
r31699 | x 2:e008cf283490 (draft *obsolete*) [ ] 2
Pierre-Yves David
bundlerepo: properly handle hidden linkrev in filelog (issue4945)...
r28220 |/
o 1:e016b03fd86f (draft) [ ] 1
|
o 0:a78f55e5508c (draft) [ ] 0
$ hg strip -r 1 --config extensions.strip=
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e016b03fd86f-c41c6bcc-backup.hg (glob)
$ hg log -G
@ 0:a78f55e5508c (draft) [tip ] 0
$ hg log -G --hidden
@ 0:a78f55e5508c (draft) [tip ] 0
$ hg pull .hg/strip-backup/*
pulling from .hg/strip-backup/e016b03fd86f-c41c6bcc-backup.hg
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
(run 'hg update' to get a working copy)
$ hg log -G
o 2:b0551702f918 (draft) [tip ] 2
|
o 1:e016b03fd86f (draft) [ ] 1
|
@ 0:a78f55e5508c (draft) [ ] 0
$ hg log -G --hidden
o 2:b0551702f918 (draft) [tip ] 2
|
o 1:e016b03fd86f (draft) [ ] 1
|
@ 0:a78f55e5508c (draft) [ ] 0
Kostia Balytskyi
commands: make --rev and --index compatible in debugobsolete
r28845 Test that 'hg debugobsolete --index --rev' can show indices of obsmarkers when
only a subset of those are displayed (because of --rev option)
$ hg init doindexrev
$ cd doindexrev
$ echo a > a
$ hg ci -Am a
adding a
$ hg ci --amend -m aa
$ echo b > b
$ hg ci -Am b
adding b
$ hg ci --amend -m bb
$ echo c > c
$ hg ci -Am c
adding c
$ hg ci --amend -m cc
$ echo d > d
$ hg ci -Am d
adding d
$ hg ci --amend -m dd
$ hg debugobsolete --index --rev "3+7"
1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'user': 'test'} (re)
3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'user': 'test'} (re)
Yuya Nishihara
debugobsolete: add formatter support (issue5134)...
r29795 $ hg debugobsolete --index --rev "3+7" -Tjson
[
{
"date": *, (glob)
"flag": 0,
"index": 1,
"metadata": {"user": "test"},
"precnode": "6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1",
"succnodes": ["d27fb9b066076fd921277a4b9e8b9cb48c95bc6a"]
},
{
"date": *, (glob)
"flag": 0,
"index": 3,
"metadata": {"user": "test"},
"precnode": "4715cf767440ed891755448016c2b8cf70760c30",
"succnodes": ["7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d"]
}
]
Pierre-Yves David
bundlerepo: properly handle hidden linkrev in filelog (issue4945)...
r28220
Kostia Balytskyi
commands: allow debugobsolete to delete arbitrary obsmarkers...
r28795 Test the --delete option of debugobsolete command
Kostia Balytskyi
debugobsolete: style fixes to debugobsolete that slipped from original commit
r28867 $ hg debugobsolete --index
0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 \(.*\) {'user': 'test'} (re)
1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'user': 'test'} (re)
2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 \(.*\) {'user': 'test'} (re)
3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'user': 'test'} (re)
$ hg debugobsolete --delete 1 --delete 3
Mads Kiilerich
spelling: fixes of non-dictionary words
r30332 deleted 2 obsolescence markers
Kostia Balytskyi
commands: allow debugobsolete to delete arbitrary obsmarkers...
r28795 $ hg debugobsolete
Kostia Balytskyi
debugobsolete: style fixes to debugobsolete that slipped from original commit
r28867 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 \(.*\) {'user': 'test'} (re)
1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 \(.*\) {'user': 'test'} (re)
Kostia Balytskyi
commands: allow debugobsolete to delete arbitrary obsmarkers...
r28795 $ cd ..
Kostia Balytskyi
debugobsolete: style fixes to debugobsolete that slipped from original commit
r28867