inhibit: Add some inhibition clearing mechanism
We do not want to keep inhibition marker around for ever. So we are removing the
one applying on public changeset.
$ cat >> $HGRCPATH <<EOF
> [ui]
> logtemplate = {rev}:{node|short} {desc}\n
> [extensions]
> EOF
$ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
$ echo "inhibit=$(echo $(dirname $TESTDIR))/hgext/inhibit.py" >> $HGRCPATH
$ mkcommit() {
> echo "$1" > "$1"
> hg add "$1"
> hg ci -m "add $1"
> }
$ hg init inhibit
$ cd inhibit
$ mkcommit cA
$ mkcommit cB
$ mkcommit cC
$ mkcommit cD
$ hg up 'desc(cA)'
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
$ mkcommit cE
created new head
$ mkcommit cG
$ mkcommit cH
$ mkcommit cJ
$ hg log -G
@ 7:18214586bf78 add cJ
|
o 6:cf5c4f4554ce add cH
|
o 5:5419eb264a33 add cG
|
o 4:98065434e5c6 add cE
|
| o 3:2db36d8066ff add cD
| |
| o 2:7df62a38b9bf add cC
| |
| o 1:02bcbc3f6e56 add cB
|/
o 0:54ccbc537fc2 add cA
plain prune
$ hg prune 1::
3 changesets pruned
$ hg log -G
@ 7:18214586bf78 add cJ
|
o 6:cf5c4f4554ce add cH
|
o 5:5419eb264a33 add cG
|
o 4:98065434e5c6 add cE
|
o 0:54ccbc537fc2 add cA
$ hg debugobsinhibit --hidden 1::
$ hg log -G
@ 7:18214586bf78 add cJ
|
o 6:cf5c4f4554ce add cH
|
o 5:5419eb264a33 add cG
|
o 4:98065434e5c6 add cE
|
| o 3:2db36d8066ff add cD
| |
| o 2:7df62a38b9bf add cC
| |
| o 1:02bcbc3f6e56 add cB
|/
o 0:54ccbc537fc2 add cA
$ hg prune --hidden 1::
3 changesets pruned
$ hg log -G
@ 7:18214586bf78 add cJ
|
o 6:cf5c4f4554ce add cH
|
o 5:5419eb264a33 add cG
|
o 4:98065434e5c6 add cE
|
o 0:54ccbc537fc2 add cA
after amend
$ echo babar > cJ
$ hg amend
$ hg log -G
@ 9:55c73a90e4b4 add cJ
|
o 6:cf5c4f4554ce add cH
|
o 5:5419eb264a33 add cG
|
o 4:98065434e5c6 add cE
|
o 0:54ccbc537fc2 add cA
$ hg debugobsinhibit --hidden 18214586bf78
$ hg log -G
@ 9:55c73a90e4b4 add cJ
|
| o 7:18214586bf78 add cJ
|/
o 6:cf5c4f4554ce add cH
|
o 5:5419eb264a33 add cG
|
o 4:98065434e5c6 add cE
|
o 0:54ccbc537fc2 add cA
and no divergence
$ hg summary
parent: 9:55c73a90e4b4 tip
add cJ
branch: default
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
check public revision got cleared
(when adding the second inhibitor, the first one is removed because it is public)
$ wc -m .hg/store/obsinhibit
20 .hg/store/obsinhibit
$ hg prune 7
1 changesets pruned
$ hg debugobsinhibit --hidden 18214586bf78
$ wc -m .hg/store/obsinhibit
20 .hg/store/obsinhibit
$ hg log -G
@ 9:55c73a90e4b4 add cJ
|
| o 7:18214586bf78 add cJ
|/
o 6:cf5c4f4554ce add cH
|
o 5:5419eb264a33 add cG
|
o 4:98065434e5c6 add cE
|
o 0:54ccbc537fc2 add cA
$ hg phase --public 7
$ hg prune 9
1 changesets pruned
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
working directory now at cf5c4f4554ce
$ hg debugobsinhibit --hidden 55c73a90e4b4
$ wc -m .hg/store/obsinhibit
20 .hg/store/obsinhibit
$ hg log -G
o 9:55c73a90e4b4 add cJ
|
| o 7:18214586bf78 add cJ
|/
@ 6:cf5c4f4554ce add cH
|
o 5:5419eb264a33 add cG
|
o 4:98065434e5c6 add cE
|
o 0:54ccbc537fc2 add cA