test-obsolete-divergent.t
666 lines
| 14.6 KiB
| text/troff
|
Tads3Lexer
/ tests / test-obsolete-divergent.t
Pierre-Yves David
|
r18068 | Test file dedicated to testing the divergent troubles from obsolete changeset. | ||
Mads Kiilerich
|
r18644 | This is the most complex troubles from far so we isolate it in a dedicated | ||
Pierre-Yves David
|
r18068 | file. | ||
Enable obsolete | ||||
$ cat >> $HGRCPATH << EOF | ||||
> [ui] | ||||
> logtemplate = {rev}:{node|short} {desc}\n | ||||
Durham Goode
|
r22955 | > [experimental] | ||
> evolution=createmarkers | ||||
Jun Wu
|
r33330 | > [extensions] | ||
> drawdag=$TESTDIR/drawdag.py | ||||
Pierre-Yves David
|
r18068 | > [alias] | ||
> debugobsolete = debugobsolete -d '0 0' | ||||
> [phases] | ||||
> publish=False | ||||
> EOF | ||||
$ mkcommit() { | ||||
> echo "$1" > "$1" | ||||
> hg add "$1" | ||||
> hg ci -m "$1" | ||||
> } | ||||
$ getid() { | ||||
Matt Mackall
|
r21789 | > hg log --hidden -r "desc('$1')" -T '{node}\n' | ||
Pierre-Yves David
|
r18068 | > } | ||
setup repo | ||||
$ hg init reference | ||||
$ cd reference | ||||
$ mkcommit base | ||||
$ mkcommit A_0 | ||||
$ hg up 0 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ mkcommit A_1 | ||||
created new head | ||||
$ hg up 0 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ mkcommit A_2 | ||||
created new head | ||||
$ hg up 0 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ cd .. | ||||
$ newcase() { | ||||
> hg clone -u 0 -q reference $1 | ||||
> cd $1 | ||||
> } | ||||
direct divergence | ||||
----------------- | ||||
A_1 have two direct and divergent successors A_1 and A_1 | ||||
$ newcase direct | ||||
$ hg debugobsolete `getid A_0` `getid A_1` | ||||
$ hg debugobsolete `getid A_0` `getid A_2` | ||||
$ hg log -G --hidden | ||||
o 3:392fd25390da A_2 | ||||
| | ||||
| o 2:82623d38b9ba A_1 | ||||
|/ | ||||
| x 1:007dc284c1f8 A_0 | ||||
|/ | ||||
@ 0:d20a80d4def3 base | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'all()' | ||
Pierre-Yves David
|
r18068 | d20a80d4def3 | ||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
Mads Kiilerich
|
r18365 | 82623d38b9ba | ||
Pierre-Yves David
|
r18069 | 392fd25390da | ||
Pierre-Yves David
|
r18068 | 82623d38b9ba | ||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
Pierre-Yves David
|
r18071 | $ hg log -r 'divergent()' | ||
2:82623d38b9ba A_1 | ||||
3:392fd25390da A_2 | ||||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'all()' --closest | ||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
$ hg debugsuccessorssets 'all()' --closest --hidden | ||||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba | ||||
392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
Pierre-Yves David
|
r18073 | |||
check that mercurial refuse to push | ||||
$ hg init ../other | ||||
$ hg push ../other | ||||
pushing to ../other | ||||
searching for changes | ||||
Pierre-Yves David
|
r18104 | abort: push includes divergent changeset: 392fd25390da! | ||
Pierre-Yves David
|
r18073 | [255] | ||
Pierre-Yves David
|
r18068 | $ cd .. | ||
indirect divergence with known changeset | ||||
------------------------------------------- | ||||
$ newcase indirect_known | ||||
$ hg debugobsolete `getid A_0` `getid A_1` | ||||
$ hg debugobsolete `getid A_0` `getid A_2` | ||||
$ mkcommit A_3 | ||||
created new head | ||||
$ hg debugobsolete `getid A_2` `getid A_3` | ||||
$ hg log -G --hidden | ||||
@ 4:01f36c5a8fda A_3 | ||||
| | ||||
| x 3:392fd25390da A_2 | ||||
|/ | ||||
| o 2:82623d38b9ba A_1 | ||||
|/ | ||||
| x 1:007dc284c1f8 A_0 | ||||
|/ | ||||
o 0:d20a80d4def3 base | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'all()' | ||
Pierre-Yves David
|
r18068 | d20a80d4def3 | ||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
Mads Kiilerich
|
r18365 | 82623d38b9ba | ||
Pierre-Yves David
|
r18068 | 01f36c5a8fda | ||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
Pierre-Yves David
|
r18071 | $ hg log -r 'divergent()' | ||
2:82623d38b9ba A_1 | ||||
4:01f36c5a8fda A_3 | ||||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'all()' --closest | ||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
$ hg debugsuccessorssets 'all()' --closest --hidden | ||||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba | ||||
392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
Pierre-Yves David
|
r18068 | $ cd .. | ||
indirect divergence with known changeset | ||||
------------------------------------------- | ||||
$ newcase indirect_unknown | ||||
$ hg debugobsolete `getid A_0` aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | ||||
$ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid A_1` | ||||
$ hg debugobsolete `getid A_0` `getid A_2` | ||||
$ hg log -G --hidden | ||||
o 3:392fd25390da A_2 | ||||
| | ||||
| o 2:82623d38b9ba A_1 | ||||
|/ | ||||
| x 1:007dc284c1f8 A_0 | ||||
|/ | ||||
@ 0:d20a80d4def3 base | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'all()' | ||
Pierre-Yves David
|
r18068 | d20a80d4def3 | ||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
Mads Kiilerich
|
r18365 | 82623d38b9ba | ||
Pierre-Yves David
|
r18069 | 392fd25390da | ||
Pierre-Yves David
|
r18068 | 82623d38b9ba | ||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
Pierre-Yves David
|
r18071 | $ hg log -r 'divergent()' | ||
2:82623d38b9ba A_1 | ||||
3:392fd25390da A_2 | ||||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'all()' --closest | ||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
$ hg debugsuccessorssets 'all()' --closest --hidden | ||||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba | ||||
392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
Pierre-Yves David
|
r18068 | $ cd .. | ||
do not take unknown node in account if they are final | ||||
----------------------------------------------------- | ||||
$ newcase final-unknown | ||||
$ hg debugobsolete `getid A_0` `getid A_1` | ||||
$ hg debugobsolete `getid A_1` `getid A_2` | ||||
$ hg debugobsolete `getid A_0` bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | ||||
$ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccccccccccccccc | ||||
$ hg debugobsolete `getid A_1` dddddddddddddddddddddddddddddddddddddddd | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'desc('A_0')' | ||
Pierre-Yves David
|
r18068 | 007dc284c1f8 | ||
392fd25390da | ||||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'desc('A_0')' --closest | ||
$ hg debugsuccessorssets 'desc('A_0')' --closest --hidden | ||||
007dc284c1f8 | ||||
82623d38b9ba | ||||
Pierre-Yves David
|
r18068 | |||
$ cd .. | ||||
divergence that converge again is not divergence anymore | ||||
----------------------------------------------------- | ||||
$ newcase converged_divergence | ||||
$ hg debugobsolete `getid A_0` `getid A_1` | ||||
$ hg debugobsolete `getid A_0` `getid A_2` | ||||
$ mkcommit A_3 | ||||
created new head | ||||
$ hg debugobsolete `getid A_1` `getid A_3` | ||||
$ hg debugobsolete `getid A_2` `getid A_3` | ||||
$ hg log -G --hidden | ||||
@ 4:01f36c5a8fda A_3 | ||||
| | ||||
| x 3:392fd25390da A_2 | ||||
|/ | ||||
| x 2:82623d38b9ba A_1 | ||||
|/ | ||||
| x 1:007dc284c1f8 A_0 | ||||
|/ | ||||
o 0:d20a80d4def3 base | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'all()' | ||
Pierre-Yves David
|
r18068 | d20a80d4def3 | ||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
01f36c5a8fda | ||||
82623d38b9ba | ||||
01f36c5a8fda | ||||
392fd25390da | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
Pierre-Yves David
|
r18071 | $ hg log -r 'divergent()' | ||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'all()' --closest | ||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
$ hg debugsuccessorssets 'all()' --closest --hidden | ||||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba | ||||
392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
Pierre-Yves David
|
r18068 | $ cd .. | ||
split is not divergences | ||||
----------------------------- | ||||
$ newcase split | ||||
$ hg debugobsolete `getid A_0` `getid A_1` `getid A_2` | ||||
$ hg log -G --hidden | ||||
o 3:392fd25390da A_2 | ||||
| | ||||
| o 2:82623d38b9ba A_1 | ||||
|/ | ||||
| x 1:007dc284c1f8 A_0 | ||||
|/ | ||||
@ 0:d20a80d4def3 base | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'all()' | ||
Pierre-Yves David
|
r18068 | d20a80d4def3 | ||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba 392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
Pierre-Yves David
|
r18071 | $ hg log -r 'divergent()' | ||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'all()' --closest | ||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
$ hg debugsuccessorssets 'all()' --closest --hidden | ||||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba 392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
Pierre-Yves David
|
r18068 | |||
Mads Kiilerich
|
r21024 | Even when subsequent rewriting happen | ||
Pierre-Yves David
|
r18068 | |||
$ mkcommit A_3 | ||||
created new head | ||||
$ hg debugobsolete `getid A_1` `getid A_3` | ||||
$ hg up 0 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ mkcommit A_4 | ||||
created new head | ||||
$ hg debugobsolete `getid A_2` `getid A_4` | ||||
$ hg up 0 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ mkcommit A_5 | ||||
created new head | ||||
$ hg debugobsolete `getid A_4` `getid A_5` | ||||
$ hg log -G --hidden | ||||
@ 6:e442cfc57690 A_5 | ||||
| | ||||
| x 5:6a411f0d7a0a A_4 | ||||
|/ | ||||
| o 4:01f36c5a8fda A_3 | ||||
|/ | ||||
| x 3:392fd25390da A_2 | ||||
|/ | ||||
| x 2:82623d38b9ba A_1 | ||||
|/ | ||||
| x 1:007dc284c1f8 A_0 | ||||
|/ | ||||
o 0:d20a80d4def3 base | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'all()' | ||
Pierre-Yves David
|
r18068 | d20a80d4def3 | ||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
01f36c5a8fda e442cfc57690 | ||||
82623d38b9ba | ||||
01f36c5a8fda | ||||
392fd25390da | ||||
e442cfc57690 | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
6a411f0d7a0a | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'all()' --closest | ||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
$ hg debugsuccessorssets 'all()' --closest --hidden | ||||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba 392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
6a411f0d7a0a | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
Pierre-Yves David
|
r18071 | $ hg log -r 'divergent()' | ||
Pierre-Yves David
|
r18068 | |||
Mads Kiilerich
|
r18644 | Check more complex obsolescence graft (with divergence) | ||
Pierre-Yves David
|
r18068 | |||
$ mkcommit B_0; hg up 0 | ||||
0 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
$ hg debugobsolete `getid B_0` `getid A_2` | ||||
$ mkcommit A_7; hg up 0 | ||||
created new head | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ mkcommit A_8; hg up 0 | ||||
created new head | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg debugobsolete `getid A_5` `getid A_7` `getid A_8` | ||||
$ mkcommit A_9; hg up 0 | ||||
created new head | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg debugobsolete `getid A_5` `getid A_9` | ||||
$ hg log -G --hidden | ||||
o 10:bed64f5d2f5a A_9 | ||||
| | ||||
| o 9:14608b260df8 A_8 | ||||
|/ | ||||
| o 8:7ae126973a96 A_7 | ||||
|/ | ||||
| x 7:3750ebee865d B_0 | ||||
| | | ||||
| x 6:e442cfc57690 A_5 | ||||
|/ | ||||
| x 5:6a411f0d7a0a A_4 | ||||
|/ | ||||
| o 4:01f36c5a8fda A_3 | ||||
|/ | ||||
| x 3:392fd25390da A_2 | ||||
|/ | ||||
| x 2:82623d38b9ba A_1 | ||||
|/ | ||||
| x 1:007dc284c1f8 A_0 | ||||
|/ | ||||
@ 0:d20a80d4def3 base | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'all()' | ||
Pierre-Yves David
|
r18068 | d20a80d4def3 | ||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
01f36c5a8fda bed64f5d2f5a | ||||
01f36c5a8fda 7ae126973a96 14608b260df8 | ||||
82623d38b9ba | ||||
01f36c5a8fda | ||||
392fd25390da | ||||
bed64f5d2f5a | ||||
7ae126973a96 14608b260df8 | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
6a411f0d7a0a | ||||
bed64f5d2f5a | ||||
7ae126973a96 14608b260df8 | ||||
e442cfc57690 | ||||
bed64f5d2f5a | ||||
7ae126973a96 14608b260df8 | ||||
3750ebee865d | ||||
bed64f5d2f5a | ||||
7ae126973a96 14608b260df8 | ||||
7ae126973a96 | ||||
7ae126973a96 | ||||
14608b260df8 | ||||
14608b260df8 | ||||
bed64f5d2f5a | ||||
bed64f5d2f5a | ||||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'all()' --closest | ||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
7ae126973a96 | ||||
7ae126973a96 | ||||
14608b260df8 | ||||
14608b260df8 | ||||
bed64f5d2f5a | ||||
bed64f5d2f5a | ||||
$ hg debugsuccessorssets 'all()' --closest --hidden | ||||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba 392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
6a411f0d7a0a | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
3750ebee865d | ||||
392fd25390da | ||||
7ae126973a96 | ||||
7ae126973a96 | ||||
14608b260df8 | ||||
14608b260df8 | ||||
bed64f5d2f5a | ||||
bed64f5d2f5a | ||||
Pierre-Yves David
|
r18071 | $ hg log -r 'divergent()' | ||
4:01f36c5a8fda A_3 | ||||
8:7ae126973a96 A_7 | ||||
9:14608b260df8 A_8 | ||||
10:bed64f5d2f5a A_9 | ||||
Pierre-Yves David
|
r18068 | |||
fix the divergence | ||||
$ mkcommit A_A; hg up 0 | ||||
created new head | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg debugobsolete `getid A_9` `getid A_A` | ||||
$ hg debugobsolete `getid A_7` `getid A_A` | ||||
$ hg debugobsolete `getid A_8` `getid A_A` | ||||
$ hg log -G --hidden | ||||
o 11:a139f71be9da A_A | ||||
| | ||||
| x 10:bed64f5d2f5a A_9 | ||||
|/ | ||||
| x 9:14608b260df8 A_8 | ||||
|/ | ||||
| x 8:7ae126973a96 A_7 | ||||
|/ | ||||
| x 7:3750ebee865d B_0 | ||||
| | | ||||
| x 6:e442cfc57690 A_5 | ||||
|/ | ||||
| x 5:6a411f0d7a0a A_4 | ||||
|/ | ||||
| o 4:01f36c5a8fda A_3 | ||||
|/ | ||||
| x 3:392fd25390da A_2 | ||||
|/ | ||||
| x 2:82623d38b9ba A_1 | ||||
|/ | ||||
| x 1:007dc284c1f8 A_0 | ||||
|/ | ||||
@ 0:d20a80d4def3 base | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'all()' | ||
Pierre-Yves David
|
r18068 | d20a80d4def3 | ||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
01f36c5a8fda a139f71be9da | ||||
82623d38b9ba | ||||
01f36c5a8fda | ||||
392fd25390da | ||||
a139f71be9da | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
6a411f0d7a0a | ||||
a139f71be9da | ||||
e442cfc57690 | ||||
a139f71be9da | ||||
3750ebee865d | ||||
a139f71be9da | ||||
7ae126973a96 | ||||
a139f71be9da | ||||
14608b260df8 | ||||
a139f71be9da | ||||
bed64f5d2f5a | ||||
a139f71be9da | ||||
a139f71be9da | ||||
a139f71be9da | ||||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'all()' --closest | ||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
a139f71be9da | ||||
a139f71be9da | ||||
$ hg debugsuccessorssets 'all()' --closest --hidden | ||||
d20a80d4def3 | ||||
d20a80d4def3 | ||||
007dc284c1f8 | ||||
82623d38b9ba 392fd25390da | ||||
82623d38b9ba | ||||
82623d38b9ba | ||||
392fd25390da | ||||
392fd25390da | ||||
01f36c5a8fda | ||||
01f36c5a8fda | ||||
6a411f0d7a0a | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
e442cfc57690 | ||||
3750ebee865d | ||||
392fd25390da | ||||
7ae126973a96 | ||||
a139f71be9da | ||||
14608b260df8 | ||||
a139f71be9da | ||||
bed64f5d2f5a | ||||
a139f71be9da | ||||
a139f71be9da | ||||
a139f71be9da | ||||
Pierre-Yves David
|
r18071 | $ hg log -r 'divergent()' | ||
Pierre-Yves David
|
r18068 | |||
$ cd .. | ||||
Pierre-Yves David
|
r18069 | |||
Subset does not diverge | ||||
------------------------------ | ||||
Do not report divergent successors-set if it is a subset of another | ||||
successors-set. (report [A,B] not [A] + [A,B]) | ||||
$ newcase subset | ||||
$ hg debugobsolete `getid A_0` `getid A_2` | ||||
$ hg debugobsolete `getid A_0` `getid A_1` `getid A_2` | ||||
Pierre-Yves David
|
r18267 | $ hg debugsuccessorssets --hidden 'desc('A_0')' | ||
Pierre-Yves David
|
r18069 | 007dc284c1f8 | ||
82623d38b9ba 392fd25390da | ||||
Boris Feld
|
r33274 | $ hg debugsuccessorssets 'desc('A_0')' --closest | ||
$ hg debugsuccessorssets 'desc('A_0')' --closest --hidden | ||||
007dc284c1f8 | ||||
82623d38b9ba 392fd25390da | ||||
Pierre-Yves David
|
r18069 | |||
$ cd .. | ||||
Jun Wu
|
r33330 | |||
Use scmutil.cleanupnodes API to create divergence | ||||
$ hg init cleanupnodes | ||||
$ cd cleanupnodes | ||||
$ hg debugdrawdag <<'EOS' | ||||
> B1 B3 B4 | ||||
> | \| | ||||
> A Z | ||||
> EOS | ||||
$ hg update -q B1 | ||||
$ echo 3 >> B | ||||
$ hg commit --amend -m B2 | ||||
$ cat > $TESTTMP/scmutilcleanup.py <<EOF | ||||
> from mercurial import registrar, scmutil | ||||
> cmdtable = {} | ||||
> command = registrar.command(cmdtable) | ||||
> @command('cleanup') | ||||
> def cleanup(ui, repo): | ||||
> def node(expr): | ||||
> unfi = repo.unfiltered() | ||||
> rev = unfi.revs(expr).first() | ||||
> return unfi.changelog.node(rev) | ||||
> with repo.wlock(), repo.lock(), repo.transaction('delayedstrip'): | ||||
> mapping = {node('desc(B1)'): [node('desc(B3)')], | ||||
> node('desc(B3)'): [node('desc(B4)')]} | ||||
> scmutil.cleanupnodes(repo, mapping, 'test') | ||||
> EOF | ||||
$ rm .hg/localtags | ||||
$ hg cleanup --config extensions.t=$TESTTMP/scmutilcleanup.py | ||||
$ hg log -G -T '{rev}:{node|short} {desc} {troubles}' -r 'sort(all(), topo)' | ||||
@ 5:1a2a9b5b0030 B2 divergent | ||||
| | ||||
| o 4:70d5a63ca112 B4 divergent | ||||
| | | ||||
| o 1:48b9aae0607f Z | ||||
| | ||||
o 0:426bada5c675 A | ||||
$ hg debugobsolete | ||||
a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} | ||||
a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} | ||||
ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} | ||||