obsolete: introduce an extension helper and use it
this extension helper allow most of setup operation to be declared in place
using decorator. This allow clear separation between independant part of the
code.
This is the first HUGE wave of changes related to this introduction.
The goal is to have a clear distinction and documention of every part of this
extension.
$ cat >> $HGRCPATH <<EOF
> [defaults]
> amend=-d "0 0"
> [extensions]
> hgext.rebase=
> hgext.graphlog=
> EOF
$ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> $HGRCPATH
$ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
$ glog() {
> hg glog --template '{rev}:{node|short}@{branch}({phase}) {desc|firstline}\n' "$@"
> }
$ hg init repo
$ cd repo
$ echo root > root
$ hg ci -Am addroot
adding root
$ echo a > a
$ hg ci -Am adda
adding a
$ echo b > b
$ hg ci -Am addb
adding b
$ echo c > c
$ hg ci -Am addc
adding c
$ glog
@ 3:7a7552255fb5@default(draft) addc
|
o 2:ef23d6ef94d6@default(draft) addb
|
o 1:93418d2c0979@default(draft) adda
|
o 0:c471ef929e6a@default(draft) addroot
$ hg gdown
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
[2] addb
$ echo b >> b
$ hg amend
1 new unstables changesets
$ hg gdown
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
[1] adda
$ echo a >> a
$ hg amend
1 new unstables changesets
$ glog
@ 7:f5ff10856e5a@default(draft) adda
|
| o 5:ab8cbb6d87ff@default(draft) addb
| |
| | o 3:7a7552255fb5@default(draft) addc
| | |
| | x 2:ef23d6ef94d6@default(draft) addb
| |/
| x 1:93418d2c0979@default(draft) adda
|/
o 0:c471ef929e6a@default(draft) addroot
Test stabilizing a predecessor child
$ hg stabilize -v
move:[5] addb
atop:[7] adda
hg rebase -Dr ab8cbb6d87ff -d f5ff10856e5a
resolving manifests
getting b
b
$ glog
@ 8:6bf44048e43f@default(draft) addb
|
o 7:f5ff10856e5a@default(draft) adda
|
| o 3:7a7552255fb5@default(draft) addc
| |
| x 2:ef23d6ef94d6@default(draft) addb
| |
| x 1:93418d2c0979@default(draft) adda
|/
o 0:c471ef929e6a@default(draft) addroot
Test stabilizing a descendant predecessors child
$ hg up 7
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg debugsuccessors > successors.old
$ hg stabilize -v
move:[3] addc
atop:[8] addb
hg rebase -Dr 7a7552255fb5 -d 6bf44048e43f
resolving manifests
getting b
resolving manifests
getting c
c
$ hg debugsuccessors > successors.new
$ diff -u successors.old successors.new
--- successors.old* (glob)
+++ successors.new* (glob)
@@ -1,5 +1,6 @@
3a4a591493f8 f5ff10856e5a
3ca0ded0dc50 ab8cbb6d87ff
+7a7552255fb5 5e819fbb0d27
93418d2c0979 f5ff10856e5a
ab8cbb6d87ff 6bf44048e43f
ef23d6ef94d6 ab8cbb6d87ff
[1]
$ glog
@ 9:5e819fbb0d27@default(draft) addc
|
o 8:6bf44048e43f@default(draft) addb
|
o 7:f5ff10856e5a@default(draft) adda
|
o 0:c471ef929e6a@default(draft) addroot
$ hg stabilize -v
no unstable changeset
[1]
Test behaviour with --any
$ hg up 8
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo b >> b
$ hg amend
1 new unstables changesets
$ glog
@ 11:4e7cec6b4afe@default(draft) addb
|
| o 9:5e819fbb0d27@default(draft) addc
| |
| x 8:6bf44048e43f@default(draft) addb
|/
o 7:f5ff10856e5a@default(draft) adda
|
o 0:c471ef929e6a@default(draft) addroot
$ hg up 9
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg stabilize -v
nothing to stabilize here
(1 unstable changesets, do you want --any ?)
[2]
$ hg stabilize --any -v
move:[9] addc
atop:[11] addb
hg rebase -Dr 5e819fbb0d27 -d 4e7cec6b4afe
resolving manifests
removing c
getting b
resolving manifests
getting c
c
$ glog
@ 12:24f95816bb21@default(draft) addc
|
o 11:4e7cec6b4afe@default(draft) addb
|
o 7:f5ff10856e5a@default(draft) adda
|
o 0:c471ef929e6a@default(draft) addroot
$ hg stabilize --any -v
no unstable changeset
[1]