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
$ glog() {
> hg glog --template '{rev}:{node|short}@{branch}({phase}) {desc|firstline}\n'\
> "$@"
> }
$ hg init repo
$ cd repo
$ echo a > a
$ hg ci -Am adda
adding a
$ echo a >> a
$ hg ci -m changea
Test regular rebase
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b > b
$ hg ci -Am addb
adding b
created new head
$ echo e > e
$ hg ci -Am adde e
$ hg rebase -d 1 -r 3 --detach --keep
$ glog
@ 4:9c5494949763@default(draft) adde
|
| o 3:98e4a024635e@default(draft) adde
| |
| o 2:102a90ea7b4a@default(draft) addb
| |
o | 1:540395c44225@default(draft) changea
|/
o 0:07f494440405@default(draft) adda
$ glog --hidden
@ 4:9c5494949763@default(draft) adde
|
| o 3:98e4a024635e@default(draft) adde
| |
| o 2:102a90ea7b4a@default(draft) addb
| |
o | 1:540395c44225@default(draft) changea
|/
o 0:07f494440405@default(draft) adda
$ hg debugsuccessors
$ hg --config extensions.hgext.mq= strip tip
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/9c5494949763-backup.hg
$ hg rebase -d 1 -r 3 --detach
$ glog
@ 4:9c5494949763@default(draft) adde
|
| o 2:102a90ea7b4a@default(draft) addb
| |
o | 1:540395c44225@default(draft) changea
|/
o 0:07f494440405@default(draft) adda
$ glog --hidden
@ 4:9c5494949763@default(draft) adde
|
| x 3:98e4a024635e@default(draft) adde
| |
| o 2:102a90ea7b4a@default(draft) addb
| |
o | 1:540395c44225@default(draft) changea
|/
o 0:07f494440405@default(draft) adda
$ hg debugsuccessors
98e4a024635e 9c5494949763
Test rebase with deleted empty revision
$ hg up 0
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch foo
marked working directory as branch foo
(branches are permanent and global, did you want a bookmark?)
$ echo a >> a
$ hg ci -m changea
$ hg rebase -d 1
$ glog --hidden
x 5:4e322f7ce8e3@foo(draft) changea
|
| o 4:9c5494949763@default(draft) adde
| |
| | x 3:98e4a024635e@default(draft) adde
| | |
+---o 2:102a90ea7b4a@default(draft) addb
| |
| @ 1:540395c44225@default(draft) changea
|/
o 0:07f494440405@default(draft) adda
$ hg debugsuccessors
4e322f7ce8e3 000000000000
98e4a024635e 9c5494949763
Test rebase --collapse
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo c > c
$ hg ci -Am addc
adding c
created new head
$ echo c >> c
$ hg ci -m changec
$ hg rebase --collapse -d 1
merging c
$ glog --hidden
@ 8:a7773ffa7edc@default(draft) Collapsed revision
|
| x 7:03f31481307a@default(draft) changec
| |
| x 6:076e9b2ffbe1@default(draft) addc
| |
| | x 5:4e322f7ce8e3@foo(draft) changea
| |/
+---o 4:9c5494949763@default(draft) adde
| |
| | x 3:98e4a024635e@default(draft) adde
| | |
| | o 2:102a90ea7b4a@default(draft) addb
| |/
o | 1:540395c44225@default(draft) changea
|/
o 0:07f494440405@default(draft) adda
$ hg debugsuccessors
03f31481307a a7773ffa7edc
076e9b2ffbe1 a7773ffa7edc
4e322f7ce8e3 000000000000
98e4a024635e 9c5494949763
Test rebase --abort
$ hg debugsuccessors > ../successors.old
$ hg up 0
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo d > d
$ hg ci -Am addd d
created new head
$ echo b >> a
$ hg ci -m appendab
$ hg rebase -d 1
merging a
warning: conflicts during merge.
merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
$ hg rebase --abort
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/03f165c84ea8-backup.hg
rebase aborted
$ hg debugsuccessors > ../successors.new
$ diff -u ../successors.old ../successors.new
Test rebase --continue
$ hg rebase -d 1
merging a
warning: conflicts during merge.
merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
abort: unresolved conflicts (see hg resolve, then hg rebase --continue)
[255]
$ hg resolve --tool internal:other a
$ hg rebase --continue
$ glog --hidden
@ 12:1951ead97108@default(draft) appendab
|
o 11:03f165c84ea8@default(draft) addd
|
| x 10:4b9d80f48523@default(draft) appendab
| |
| x 9:a31943eabc43@default(draft) addd
| |
+---o 8:a7773ffa7edc@default(draft) Collapsed revision
| |
| | x 7:03f31481307a@default(draft) changec
| | |
| | x 6:076e9b2ffbe1@default(draft) addc
| |/
| | x 5:4e322f7ce8e3@foo(draft) changea
| |/
+---o 4:9c5494949763@default(draft) adde
| |
| | x 3:98e4a024635e@default(draft) adde
| | |
| | o 2:102a90ea7b4a@default(draft) addb
| |/
o | 1:540395c44225@default(draft) changea
|/
o 0:07f494440405@default(draft) adda
$ hg debugsuccessors > ../successors.new
$ diff -u ../successors.old ../successors.new
--- ../successors.old* (glob)
+++ ../successors.new* (glob)
@@ -1,4 +1,6 @@
03f31481307a a7773ffa7edc
076e9b2ffbe1 a7773ffa7edc
+4b9d80f48523 1951ead97108
4e322f7ce8e3 000000000000
98e4a024635e 9c5494949763
+a31943eabc43 03f165c84ea8
[1]