2018-10-27 04:52:14 +03:00
|
|
|
TODO: Make this test compatibile with obsstore enabled.
|
|
|
|
$ setconfig experimental.evolution=
|
2015-12-02 23:10:59 +03:00
|
|
|
$ . "$TESTDIR/histedit-helpers.sh"
|
|
|
|
|
|
|
|
$ cat >> $HGRCPATH <<EOF
|
|
|
|
> [extensions]
|
2018-01-09 14:06:09 +03:00
|
|
|
> fbhistedit=
|
2017-10-17 21:56:27 +03:00
|
|
|
> histedit=
|
|
|
|
> rebase=
|
2015-12-02 23:10:59 +03:00
|
|
|
> EOF
|
|
|
|
|
2018-01-31 06:08:59 +03:00
|
|
|
$ addcommits ()
|
|
|
|
> {
|
|
|
|
> for x in "$@" ; do
|
|
|
|
> echo "$x" > "$x"
|
|
|
|
> hg add "$x"
|
|
|
|
> hg ci -m "$x"
|
|
|
|
> done
|
|
|
|
> }
|
2015-12-02 23:10:59 +03:00
|
|
|
$ initrepo ()
|
|
|
|
> {
|
|
|
|
> hg init r
|
|
|
|
> cd r
|
2018-01-31 06:08:59 +03:00
|
|
|
> addcommits a b c d e f
|
2015-12-02 23:10:59 +03:00
|
|
|
> hg update 1
|
2018-01-31 06:08:59 +03:00
|
|
|
> addcommits g h i
|
2015-12-02 23:10:59 +03:00
|
|
|
> hg update 1
|
|
|
|
> echo CONFLICT > f
|
|
|
|
> hg add f
|
|
|
|
> hg ci -m "conflict f"
|
|
|
|
> hg update 9
|
|
|
|
> }
|
|
|
|
|
|
|
|
$ initrepo
|
|
|
|
0 files updated, 0 files merged, 4 files removed, 0 files unresolved
|
|
|
|
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
|
|
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
|
|
|
|
log before rebase
|
|
|
|
|
|
|
|
$ hg log -G -T '{rev}:{node|short} {desc|firstline}\n'
|
|
|
|
@ 9:8d0611d6e5f2 conflict f
|
|
|
|
|
|
|
|
|
| o 8:cf7e1bc6a982 i
|
|
|
|
| |
|
|
|
|
| o 7:7523912c6e49 h
|
|
|
|
| |
|
|
|
|
| o 6:0ba40a7dd69a g
|
|
|
|
|/
|
|
|
|
| o 5:652413bf663e f
|
|
|
|
| |
|
|
|
|
| o 4:e860deea161a e
|
|
|
|
| |
|
|
|
|
| o 3:055a42cdd887 d
|
|
|
|
| |
|
|
|
|
| o 2:177f92b77385 c
|
|
|
|
|/
|
|
|
|
o 1:d2ae7f538514 b
|
|
|
|
|
|
|
|
|
o 0:cb9a9f314b8b a
|
|
|
|
|
|
|
|
Simple rebase with -s and -d
|
|
|
|
|
|
|
|
$ hg update 8
|
|
|
|
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
$ HGEDITOR=true hg rebase -i -s 8 -d 5
|
2017-07-11 23:19:40 +03:00
|
|
|
saved backup bundle to $TESTTMP/r/.hg/strip-backup/cf7e1bc6a982-9ce57ee5-histedit.hg (glob)
|
2015-12-02 23:10:59 +03:00
|
|
|
|
|
|
|
$ hg log -G -T '{rev}:{node|short} {desc|firstline}\n'
|
|
|
|
@ 9:bb8affa27bd8 i
|
|
|
|
|
|
|
|
|
| o 8:8d0611d6e5f2 conflict f
|
|
|
|
| |
|
|
|
|
| | o 7:7523912c6e49 h
|
|
|
|
| | |
|
|
|
|
| | o 6:0ba40a7dd69a g
|
|
|
|
| |/
|
|
|
|
o | 5:652413bf663e f
|
|
|
|
| |
|
|
|
|
o | 4:e860deea161a e
|
|
|
|
| |
|
|
|
|
o | 3:055a42cdd887 d
|
|
|
|
| |
|
|
|
|
o | 2:177f92b77385 c
|
|
|
|
|/
|
|
|
|
o 1:d2ae7f538514 b
|
|
|
|
|
|
|
|
|
o 0:cb9a9f314b8b a
|
|
|
|
|
|
|
|
|
|
|
|
Try to rebase with conflict (also check -d without -s)
|
|
|
|
$ hg update 8
|
|
|
|
1 files updated, 0 files merged, 4 files removed, 0 files unresolved
|
|
|
|
|
|
|
|
$ HGEDITOR=true hg rebase -i -d 9
|
|
|
|
merging f
|
2018-10-22 22:45:46 +03:00
|
|
|
warning: 1 conflicts while merging f! (edit, then use 'hg resolve --mark')
|
2016-01-21 00:40:15 +03:00
|
|
|
Fix up the change (pick 8d0611d6e5f2)
|
|
|
|
(hg histedit --continue to resume)
|
2015-12-02 23:10:59 +03:00
|
|
|
[1]
|
|
|
|
|
|
|
|
$ echo resolved > f
|
|
|
|
$ hg resolve --mark f
|
|
|
|
(no more unresolved files)
|
2016-01-21 00:40:15 +03:00
|
|
|
continue: hg histedit --continue
|
2015-12-02 23:10:59 +03:00
|
|
|
$ hg histedit --continue
|
2017-07-11 23:19:40 +03:00
|
|
|
saved backup bundle to $TESTTMP/r/.hg/strip-backup/8d0611d6e5f2-0e0da94b-histedit.hg (glob)
|
2015-12-02 23:10:59 +03:00
|
|
|
|
|
|
|
$ hg log -G -T '{rev}:{node|short} {desc|firstline}\n'
|
|
|
|
@ 9:b6ca70f8129d conflict f
|
|
|
|
|
|
|
|
|
o 8:bb8affa27bd8 i
|
|
|
|
|
|
|
|
|
| o 7:7523912c6e49 h
|
|
|
|
| |
|
|
|
|
| o 6:0ba40a7dd69a g
|
|
|
|
| |
|
|
|
|
o | 5:652413bf663e f
|
|
|
|
| |
|
|
|
|
o | 4:e860deea161a e
|
|
|
|
| |
|
|
|
|
o | 3:055a42cdd887 d
|
|
|
|
| |
|
|
|
|
o | 2:177f92b77385 c
|
|
|
|
|/
|
|
|
|
o 1:d2ae7f538514 b
|
|
|
|
|
|
|
|
|
o 0:cb9a9f314b8b a
|
|
|
|
|
|
|
|
|
|
|
|
Rebase with base
|
|
|
|
$ hg update 7
|
|
|
|
2 files updated, 0 files merged, 5 files removed, 0 files unresolved
|
|
|
|
$ HGEDITOR=true hg rebase -i -b . -d 9
|
2017-07-11 23:19:40 +03:00
|
|
|
saved backup bundle to $TESTTMP/r/.hg/strip-backup/0ba40a7dd69a-033489e1-histedit.hg (glob)
|
2015-12-02 23:10:59 +03:00
|
|
|
$ hg log -G -T '{rev}:{node|short} {desc|firstline}\n'
|
|
|
|
@ 9:50cf975d06ef h
|
|
|
|
|
|
|
|
|
o 8:ba6932766227 g
|
|
|
|
|
|
|
|
|
o 7:b6ca70f8129d conflict f
|
|
|
|
|
|
|
|
|
o 6:bb8affa27bd8 i
|
|
|
|
|
|
|
|
|
o 5:652413bf663e f
|
|
|
|
|
|
|
|
|
o 4:e860deea161a e
|
|
|
|
|
|
|
|
|
o 3:055a42cdd887 d
|
|
|
|
|
|
|
|
|
o 2:177f92b77385 c
|
|
|
|
|
|
|
|
|
o 1:d2ae7f538514 b
|
|
|
|
|
|
|
|
|
o 0:cb9a9f314b8b a
|
|
|
|
|
2018-01-31 06:08:59 +03:00
|
|
|
Rebase with -s and -d and checked out to something that is not a child of
|
|
|
|
either the source or destination. This unfortunately is rejected since the
|
|
|
|
histedit code currently requires all edited commits to be ancestors of the
|
|
|
|
current working directory parent.
|
|
|
|
|
|
|
|
$ hg update 6
|
|
|
|
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
|
|
|
$ addcommits x y z
|
|
|
|
$ hg update 5
|
|
|
|
0 files updated, 0 files merged, 4 files removed, 0 files unresolved
|
|
|
|
$ hg log -G -T '{rev}:{node|short} {desc|firstline}\n'
|
|
|
|
o 12:70ff95fe5c79 z
|
|
|
|
|
|
|
|
|
o 11:9843e524084d y
|
|
|
|
|
|
|
|
|
o 10:a5ae87083656 x
|
|
|
|
|
|
|
|
|
| o 9:50cf975d06ef h
|
|
|
|
| |
|
|
|
|
| o 8:ba6932766227 g
|
|
|
|
| |
|
|
|
|
| o 7:b6ca70f8129d conflict f
|
|
|
|
|/
|
|
|
|
o 6:bb8affa27bd8 i
|
|
|
|
|
|
|
|
|
@ 5:652413bf663e f
|
|
|
|
|
|
|
|
|
o 4:e860deea161a e
|
|
|
|
|
|
|
|
|
o 3:055a42cdd887 d
|
|
|
|
|
|
|
|
|
o 2:177f92b77385 c
|
|
|
|
|
|
|
|
|
o 1:d2ae7f538514 b
|
|
|
|
|
|
|
|
|
o 0:cb9a9f314b8b a
|
|
|
|
|
|
|
|
$ HGEDITOR=true hg rebase -i -s 11 -d 8
|
|
|
|
abort: source revision (-s) must be an ancestor of the working directory for interactive rebase
|
|
|
|
[255]
|