2019-12-10 02:24:31 +03:00
|
|
|
#chg-compatible
|
|
|
|
|
2020-01-20 13:42:49 +03:00
|
|
|
$ enable rebase
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
Rebasing D onto B detaching from C (one commit):
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
$ hg init a1
|
2010-10-01 18:10:06 +04:00
|
|
|
$ cd a1
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ drawdag <<EOF
|
2017-07-15 07:44:29 +03:00
|
|
|
> D
|
|
|
|
> |
|
|
|
|
> C B
|
|
|
|
> |/
|
|
|
|
> A
|
|
|
|
> EOF
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg rebase -s $D -d $B
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing e7b3f00ed42e "D"
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2012-01-17 12:12:14 +04:00
|
|
|
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
|
2020-07-02 23:11:57 +03:00
|
|
|
o 4:draft 'D'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
|
2012-01-17 12:12:14 +04:00
|
|
|
| o 2:draft 'C'
|
2010-10-01 18:10:06 +04:00
|
|
|
| |
|
2017-07-15 07:44:29 +03:00
|
|
|
o | 1:draft 'B'
|
2010-10-01 18:10:06 +04:00
|
|
|
|/
|
2012-01-17 12:12:14 +04:00
|
|
|
o 0:draft 'A'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2013-10-14 18:49:54 +04:00
|
|
|
$ hg manifest --rev tip
|
2010-10-01 18:10:06 +04:00
|
|
|
A
|
2017-07-15 07:44:29 +03:00
|
|
|
B
|
2010-10-01 18:10:06 +04:00
|
|
|
D
|
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
|
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
Rebasing D onto B detaching from C (two commits):
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
$ hg init a2
|
2010-10-01 18:10:06 +04:00
|
|
|
$ cd a2
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ drawdag <<EOF
|
2017-07-15 07:44:29 +03:00
|
|
|
> E
|
|
|
|
> |
|
|
|
|
> D
|
|
|
|
> |
|
|
|
|
> C B
|
|
|
|
> |/
|
|
|
|
> A
|
|
|
|
> EOF
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg rebase -s $D -d $B
|
|
|
|
rebasing e7b3f00ed42e "D"
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing 69a34c08022a "E"
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2018-08-16 20:37:29 +03:00
|
|
|
$ tglog
|
2020-07-02 23:11:57 +03:00
|
|
|
o 6: ee79e0744528 'E'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
|
2020-07-02 23:11:57 +03:00
|
|
|
o 5: 10530e1d72d9 'D'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
|
2017-12-11 08:57:37 +03:00
|
|
|
| o 2: dc0947a82db8 'C'
|
2011-04-30 19:38:06 +04:00
|
|
|
| |
|
2017-12-11 08:57:37 +03:00
|
|
|
o | 1: 112478962961 'B'
|
2010-10-01 18:10:06 +04:00
|
|
|
|/
|
2017-12-11 08:57:37 +03:00
|
|
|
o 0: 426bada5c675 'A'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2013-10-14 18:49:54 +04:00
|
|
|
$ hg manifest --rev tip
|
2010-10-01 18:10:06 +04:00
|
|
|
A
|
2017-07-15 07:44:29 +03:00
|
|
|
B
|
2010-10-01 18:10:06 +04:00
|
|
|
D
|
2017-07-15 07:44:29 +03:00
|
|
|
E
|
2010-10-01 18:10:06 +04:00
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
Rebasing C onto B using detach (same as not using it):
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
$ hg init a3
|
2010-10-01 18:10:06 +04:00
|
|
|
$ cd a3
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ drawdag <<EOF
|
2017-07-15 07:44:29 +03:00
|
|
|
> D
|
|
|
|
> |
|
|
|
|
> C B
|
|
|
|
> |/
|
|
|
|
> A
|
|
|
|
> EOF
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg rebase -s $C -d $B
|
|
|
|
rebasing dc0947a82db8 "C"
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing e7b3f00ed42e "D"
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2018-08-16 20:37:29 +03:00
|
|
|
$ tglog
|
2020-07-02 23:11:57 +03:00
|
|
|
o 5: 7375f3dbfb0f 'D'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
|
2020-07-02 23:11:57 +03:00
|
|
|
o 4: bbfdd6cb49aa 'C'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
|
2017-12-11 08:57:37 +03:00
|
|
|
o 1: 112478962961 'B'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
|
2017-12-11 08:57:37 +03:00
|
|
|
o 0: 426bada5c675 'A'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2013-10-14 18:49:54 +04:00
|
|
|
$ hg manifest --rev tip
|
2010-10-01 18:10:06 +04:00
|
|
|
A
|
|
|
|
B
|
|
|
|
C
|
|
|
|
D
|
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
|
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
Rebasing D onto B detaching from C and collapsing:
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
$ hg init a4
|
2010-10-01 18:10:06 +04:00
|
|
|
$ cd a4
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ drawdag <<EOF
|
2017-07-15 07:44:29 +03:00
|
|
|
> E
|
|
|
|
> |
|
|
|
|
> D
|
|
|
|
> |
|
|
|
|
> C B
|
|
|
|
> |/
|
|
|
|
> A
|
|
|
|
> EOF
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg rebase --collapse -s $D -d $B
|
|
|
|
rebasing e7b3f00ed42e "D"
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing 69a34c08022a "E"
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2012-01-17 12:12:14 +04:00
|
|
|
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
|
2020-07-02 23:11:57 +03:00
|
|
|
o 5:draft 'Collapsed revision
|
2017-07-15 07:44:29 +03:00
|
|
|
| * D
|
|
|
|
| * E'
|
|
|
|
| o 2:draft 'C'
|
2011-04-30 19:38:06 +04:00
|
|
|
| |
|
2017-07-15 07:44:29 +03:00
|
|
|
o | 1:draft 'B'
|
2010-10-01 18:10:06 +04:00
|
|
|
|/
|
2012-01-17 12:12:14 +04:00
|
|
|
o 0:draft 'A'
|
2010-10-01 18:10:06 +04:00
|
|
|
|
2013-10-14 18:49:54 +04:00
|
|
|
$ hg manifest --rev tip
|
2010-10-01 18:10:06 +04:00
|
|
|
A
|
2017-07-15 07:44:29 +03:00
|
|
|
B
|
2010-10-01 18:10:06 +04:00
|
|
|
D
|
2017-07-15 07:44:29 +03:00
|
|
|
E
|
2010-10-01 18:10:06 +04:00
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
|
2010-11-20 11:51:56 +03:00
|
|
|
Rebasing across null as ancestor
|
2017-07-15 07:44:29 +03:00
|
|
|
$ hg init a5
|
2010-11-20 11:51:56 +03:00
|
|
|
$ cd a5
|
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ drawdag <<EOF
|
2017-07-15 07:44:29 +03:00
|
|
|
> E
|
|
|
|
> |
|
|
|
|
> D
|
|
|
|
> |
|
|
|
|
> C
|
|
|
|
> |
|
|
|
|
> A B
|
|
|
|
> EOF
|
2010-11-20 11:51:56 +03:00
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg rebase -s $C -d $B
|
|
|
|
rebasing dc0947a82db8 "C"
|
|
|
|
rebasing e7b3f00ed42e "D"
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing 69a34c08022a "E"
|
2010-11-20 11:51:56 +03:00
|
|
|
|
2018-08-16 20:37:29 +03:00
|
|
|
$ tglog
|
2020-07-02 23:11:57 +03:00
|
|
|
o 7: e3d0c70d606d 'E'
|
2010-11-20 11:51:56 +03:00
|
|
|
|
|
2020-07-02 23:11:57 +03:00
|
|
|
o 6: e9153d36a1af 'D'
|
2010-11-20 11:51:56 +03:00
|
|
|
|
|
2020-07-02 23:11:57 +03:00
|
|
|
o 5: a7ac28b870a8 'C'
|
2010-11-20 11:51:56 +03:00
|
|
|
|
|
2017-12-11 08:57:37 +03:00
|
|
|
o 1: fc2b737bb2e5 'B'
|
2010-11-20 11:51:56 +03:00
|
|
|
|
2017-12-11 08:57:37 +03:00
|
|
|
o 0: 426bada5c675 'A'
|
2010-11-20 11:51:56 +03:00
|
|
|
|
2020-07-02 23:11:57 +03:00
|
|
|
$ hg rebase -d 'desc(B)' -s 'desc(D)'
|
2019-10-16 02:28:01 +03:00
|
|
|
rebasing e9153d36a1af "D"
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing e3d0c70d606d "E"
|
2018-08-16 20:37:29 +03:00
|
|
|
$ tglog
|
2020-07-02 23:11:57 +03:00
|
|
|
o 9: 2c24e540eccd 'E'
|
2011-09-19 18:57:13 +04:00
|
|
|
|
|
2020-07-02 23:11:57 +03:00
|
|
|
o 8: 73f786ed52ff 'D'
|
2011-09-19 18:57:13 +04:00
|
|
|
|
|
2020-07-02 23:11:57 +03:00
|
|
|
| o 5: a7ac28b870a8 'C'
|
2011-09-19 18:57:13 +04:00
|
|
|
|/
|
2017-12-11 08:57:37 +03:00
|
|
|
o 1: fc2b737bb2e5 'B'
|
2011-09-19 18:57:13 +04:00
|
|
|
|
2017-12-11 08:57:37 +03:00
|
|
|
o 0: 426bada5c675 'A'
|
2011-09-19 18:57:13 +04:00
|
|
|
|
2011-11-07 02:35:33 +04:00
|
|
|
$ cd ..
|
|
|
|
|
2011-11-08 20:09:48 +04:00
|
|
|
Verify that target is not selected as external rev (issue3085)
|
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
$ hg init a6
|
2011-11-07 02:35:33 +04:00
|
|
|
$ cd a6
|
2017-07-15 07:44:29 +03:00
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ drawdag <<EOF
|
2017-07-15 07:44:29 +03:00
|
|
|
> H
|
|
|
|
> | G
|
|
|
|
> |/|
|
|
|
|
> F E
|
|
|
|
> |/
|
|
|
|
> A
|
|
|
|
> EOF
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg up -q $G
|
2011-11-08 20:09:48 +04:00
|
|
|
|
|
|
|
$ echo "I" >> E
|
|
|
|
$ hg ci -m "I"
|
2019-12-17 05:10:38 +03:00
|
|
|
$ export I=$(hg log -r . -T "{node}")
|
|
|
|
$ hg merge $H
|
2011-11-08 20:09:48 +04:00
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
(branch merge, don't forget to commit)
|
|
|
|
$ hg ci -m "Merge"
|
|
|
|
$ echo "J" >> F
|
|
|
|
$ hg ci -m "J"
|
2018-08-16 20:37:29 +03:00
|
|
|
$ tglog
|
2017-12-11 08:57:37 +03:00
|
|
|
@ 7: c6aaf0d259c0 'J'
|
2017-07-15 07:44:29 +03:00
|
|
|
|
|
2017-12-11 08:57:37 +03:00
|
|
|
o 6: 0cfbc7e8faaf 'Merge'
|
2017-07-15 07:44:29 +03:00
|
|
|
|\
|
2017-12-11 08:57:37 +03:00
|
|
|
| o 5: b92d164ad3cb 'I'
|
2017-07-15 07:44:29 +03:00
|
|
|
| |
|
2017-12-11 08:57:37 +03:00
|
|
|
o | 4: 4ea5b230dea3 'H'
|
2017-07-15 07:44:29 +03:00
|
|
|
| |
|
2017-12-11 08:57:37 +03:00
|
|
|
| o 3: c6001eacfde5 'G'
|
2017-07-15 07:44:29 +03:00
|
|
|
|/|
|
2017-12-11 08:57:37 +03:00
|
|
|
o | 2: 8908a377a434 'F'
|
2017-07-15 07:44:29 +03:00
|
|
|
| |
|
2017-12-11 08:57:37 +03:00
|
|
|
| o 1: 7fb047a69f22 'E'
|
2017-07-15 07:44:29 +03:00
|
|
|
|/
|
2017-12-11 08:57:37 +03:00
|
|
|
o 0: 426bada5c675 'A'
|
2017-07-15 07:44:29 +03:00
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg rebase -s $I -d $H --collapse --config ui.merge=internal:other
|
|
|
|
rebasing b92d164ad3cb "I"
|
2019-10-16 02:28:01 +03:00
|
|
|
rebasing 0cfbc7e8faaf "Merge"
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing c6aaf0d259c0 "J"
|
2011-11-08 20:09:48 +04:00
|
|
|
|
2018-08-16 20:37:29 +03:00
|
|
|
$ tglog
|
2020-07-02 23:11:57 +03:00
|
|
|
@ 8: 65079693dac4 'Collapsed revision
|
2011-11-08 20:09:48 +04:00
|
|
|
| * I
|
|
|
|
| * Merge
|
|
|
|
| * J'
|
2017-12-11 08:57:37 +03:00
|
|
|
o 4: 4ea5b230dea3 'H'
|
2011-11-08 20:09:48 +04:00
|
|
|
|
|
2017-12-11 08:57:37 +03:00
|
|
|
| o 3: c6001eacfde5 'G'
|
2011-11-08 20:09:48 +04:00
|
|
|
|/|
|
2017-12-11 08:57:37 +03:00
|
|
|
o | 2: 8908a377a434 'F'
|
2011-11-08 20:09:48 +04:00
|
|
|
| |
|
2017-12-11 08:57:37 +03:00
|
|
|
| o 1: 7fb047a69f22 'E'
|
2011-11-08 20:09:48 +04:00
|
|
|
|/
|
2017-12-11 08:57:37 +03:00
|
|
|
o 0: 426bada5c675 'A'
|
2011-11-08 20:09:48 +04:00
|
|
|
|
|
|
|
|
2013-10-14 18:49:54 +04:00
|
|
|
$ hg log --rev tip
|
2020-07-02 23:11:57 +03:00
|
|
|
changeset: 8:65079693dac4
|
|
|
|
parent: 4:4ea5b230dea3
|
2011-11-08 20:09:48 +04:00
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: Collapsed revision
|
|
|
|
|
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
|
2012-01-17 12:12:14 +04:00
|
|
|
Ensure --continue restores a correct state (issue3046) and phase:
|
2017-07-15 07:44:29 +03:00
|
|
|
$ hg init a7
|
2011-11-08 20:09:48 +04:00
|
|
|
$ cd a7
|
2017-07-15 07:44:29 +03:00
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ drawdag <<EOF
|
2017-07-15 07:44:29 +03:00
|
|
|
> C B
|
|
|
|
> |/
|
|
|
|
> A
|
|
|
|
> EOF
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg up -q $C
|
2017-07-15 07:44:29 +03:00
|
|
|
$ echo 'B2' > B
|
|
|
|
$ hg ci -A -m 'B2'
|
|
|
|
adding B
|
2020-07-02 23:11:57 +03:00
|
|
|
|
2019-12-17 05:10:38 +03:00
|
|
|
$ hg rebase -s . -d $B --config ui.merge=internal:fail
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing 17b4880d2402 "B2"
|
2017-07-15 07:44:29 +03:00
|
|
|
merging B
|
2018-10-22 22:45:46 +03:00
|
|
|
warning: 1 conflicts while merging B! (edit, then use 'hg resolve --mark')
|
2013-02-09 02:27:59 +04:00
|
|
|
unresolved conflicts (see hg resolve, then hg rebase --continue)
|
2013-02-09 02:17:46 +04:00
|
|
|
[1]
|
2011-11-07 02:35:33 +04:00
|
|
|
$ hg resolve --all -t internal:local
|
2014-07-26 05:32:49 +04:00
|
|
|
(no more unresolved files)
|
2015-12-24 23:41:40 +03:00
|
|
|
continue: hg rebase --continue
|
2011-11-07 02:35:33 +04:00
|
|
|
$ hg rebase -c
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing 17b4880d2402 "B2"
|
2017-07-15 07:44:29 +03:00
|
|
|
note: rebase of 3:17b4880d2402 created no changes to commit
|
2012-01-17 12:12:14 +04:00
|
|
|
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
|
2017-07-15 07:44:29 +03:00
|
|
|
o 2:draft 'C'
|
2011-11-07 02:35:33 +04:00
|
|
|
|
|
2017-07-15 07:44:29 +03:00
|
|
|
| @ 1:draft 'B'
|
2011-11-07 02:35:33 +04:00
|
|
|
|/
|
2012-01-17 12:12:14 +04:00
|
|
|
o 0:draft 'A'
|
2011-11-07 02:35:33 +04:00
|
|
|
|
2012-06-11 03:40:51 +04:00
|
|
|
|
|
|
|
$ cd ..
|