2019-05-28 13:12:27 +03:00
|
|
|
$ setconfig extensions.treemanifest=!
|
2018-10-27 04:52:14 +03:00
|
|
|
TODO: Make this test compatibile with obsstore enabled.
|
|
|
|
$ setconfig experimental.evolution=
|
2015-03-12 01:57:50 +03:00
|
|
|
Set up extension and repos
|
|
|
|
|
|
|
|
$ echo "[phases]" >> $HGRCPATH
|
|
|
|
$ echo "publish = False" >> $HGRCPATH
|
|
|
|
$ echo "[extensions]" >> $HGRCPATH
|
2018-01-03 17:15:47 +03:00
|
|
|
$ echo "remotenames=" >> $HGRCPATH
|
2015-03-12 01:57:50 +03:00
|
|
|
$ hg init repo1
|
|
|
|
|
|
|
|
Make sure we don't fail when rebase doesn't exist
|
|
|
|
|
|
|
|
$ hg rebase
|
2019-08-20 05:24:40 +03:00
|
|
|
unknown command 'rebase'
|
|
|
|
(use 'hg help' to get help)
|
2015-03-12 01:57:50 +03:00
|
|
|
[255]
|
|
|
|
$ echo "rebase=" >> $HGRCPATH
|
|
|
|
|
|
|
|
Create a tracking bookmark
|
|
|
|
|
|
|
|
$ cd repo1
|
|
|
|
$ echo a > a
|
|
|
|
$ hg add a
|
|
|
|
$ hg commit -m a1
|
|
|
|
$ echo a >> a
|
|
|
|
$ hg commit -m a2
|
|
|
|
$ hg book a
|
2015-03-12 22:53:08 +03:00
|
|
|
$ hg up ".^"
|
2015-03-12 01:57:50 +03:00
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
(leaving bookmark a)
|
|
|
|
$ echo b > b
|
2015-05-12 22:28:15 +03:00
|
|
|
$ echo b > a
|
2015-03-12 01:57:50 +03:00
|
|
|
$ hg add b
|
|
|
|
$ hg commit -m b
|
|
|
|
$ hg book b -t a
|
|
|
|
$ hg log -G -T '{rev} {desc} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 2 b b
|
|
|
|
|
|
|
|
|
| o 1 a2 a
|
|
|
|
|/
|
|
|
|
o 0 a1
|
|
|
|
|
2015-03-13 02:27:39 +03:00
|
|
|
$ hg book -v
|
|
|
|
a 1:fdceb0e57656
|
2015-05-12 22:28:15 +03:00
|
|
|
* b 2:dea4e1d2ca0e [a: 1 ahead, 1 behind]
|
|
|
|
$ hg rebase --tool :fail
|
2017-09-28 16:52:46 +03:00
|
|
|
rebasing 2:dea4e1d2ca0e "b" (b tip)
|
2015-05-12 22:28:15 +03:00
|
|
|
unresolved conflicts (see hg resolve, then hg rebase --continue)
|
|
|
|
[1]
|
|
|
|
$ echo aa > a
|
2016-01-09 03:12:02 +03:00
|
|
|
$ hg resolve --mark a 2>&1 | grep -v "^continue:"
|
2015-05-12 22:28:15 +03:00
|
|
|
(no more unresolved files)
|
|
|
|
$ hg rebase --continue
|
2017-09-28 16:52:46 +03:00
|
|
|
rebasing 2:dea4e1d2ca0e "b" (b tip)
|
2017-07-18 15:48:50 +03:00
|
|
|
saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/dea4e1d2ca0e-a7f1cee1-*.hg (glob)
|
2015-03-13 02:27:39 +03:00
|
|
|
$ hg log -G -T '{rev} {desc} {bookmarks} {remotebookmarks}'
|
2015-03-12 01:57:50 +03:00
|
|
|
@ 2 b b
|
|
|
|
|
|
|
|
|
o 1 a2 a
|
|
|
|
|
|
|
|
|
o 0 a1
|
|
|
|
|
2015-03-13 02:27:39 +03:00
|
|
|
$ hg book -v
|
|
|
|
a 1:fdceb0e57656
|
2015-05-12 22:28:15 +03:00
|
|
|
* b 2:2623fce7de21 [a: 1 ahead, 0 behind]
|
2015-03-13 02:27:39 +03:00
|
|
|
|
2015-03-12 03:24:01 +03:00
|
|
|
Test push tracking
|
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
$ hg clone repo1 repo2
|
|
|
|
updating to branch default
|
|
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ cd repo2
|
|
|
|
$ hg log -G -T '{rev} {desc} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 2 b default/b
|
|
|
|
|
|
|
|
|
o 1 a2 default/a
|
|
|
|
|
|
|
|
|
o 0 a1
|
|
|
|
|
|
|
|
|
|
|
|
$ hg boo c -t default/b
|
|
|
|
$ echo c > c
|
|
|
|
$ hg add c
|
|
|
|
$ hg commit -m c
|
|
|
|
$ hg log -G -T '{rev} {desc} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 3 c c
|
|
|
|
|
|
|
|
|
o 2 b default/b
|
|
|
|
|
|
|
|
|
o 1 a2 default/a
|
|
|
|
|
|
|
|
|
o 0 a1
|
|
|
|
|
|
|
|
$ hg push
|
2015-05-12 22:28:15 +03:00
|
|
|
pushing rev e305ab9fea99 to destination $TESTTMP/repo1 bookmark b
|
2015-03-12 03:24:01 +03:00
|
|
|
searching for changes
|
|
|
|
adding changesets
|
|
|
|
adding manifests
|
|
|
|
adding file changes
|
|
|
|
added 1 changesets with 1 changes to 1 files
|
|
|
|
updating bookmark b
|
|
|
|
$ hg log -G -T '{rev} {desc} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 3 c c default/b
|
|
|
|
|
|
|
|
|
o 2 b
|
|
|
|
|
|
|
|
|
o 1 a2 default/a
|
|
|
|
|
|
|
|
|
o 0 a1
|
|
|
|
|
2019-04-17 18:35:11 +03:00
|
|
|
Test push with explicit default path
|
|
|
|
|
|
|
|
$ hg push `hg paths default`
|
|
|
|
pushing rev e305ab9fea99 to destination $TESTTMP/repo1 bookmark b
|
|
|
|
searching for changes
|
|
|
|
remote bookmark already points at pushed rev
|
|
|
|
no changes found
|
|
|
|
[1]
|
2015-03-12 03:24:01 +03:00
|
|
|
|
|
|
|
Test that we don't try to push if tracking bookmark isn't a remote bookmark
|
|
|
|
|
|
|
|
$ echo "[remotenames]" >> $HGRCPATH
|
|
|
|
$ echo "forceto = True" >> $HGRCPATH
|
|
|
|
$ hg book c -t foo
|
|
|
|
$ hg push
|
|
|
|
abort: must specify --to when pushing
|
|
|
|
(see configuration option remotenames.forceto)
|
|
|
|
[255]
|
2015-03-12 10:06:11 +03:00
|
|
|
|
|
|
|
Test renaming a remote and tracking
|
|
|
|
|
2019-09-14 06:17:38 +03:00
|
|
|
$ rm .hg/store/remotenames
|
2015-03-12 10:06:11 +03:00
|
|
|
$ echo "[remotenames]" >> $HGRCPATH
|
|
|
|
$ echo "rename.default = remote" >> $HGRCPATH
|
|
|
|
$ hg pull
|
2015-03-12 22:53:08 +03:00
|
|
|
pulling from $TESTTMP/repo1 (glob)
|
2015-03-12 10:06:11 +03:00
|
|
|
searching for changes
|
|
|
|
no changes found
|
|
|
|
$ hg book c -t remote/a
|
|
|
|
$ hg log -G -T '{rev} {desc} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 3 c c remote/b
|
|
|
|
|
|
|
|
|
o 2 b
|
|
|
|
|
|
|
|
|
o 1 a2 remote/a
|
|
|
|
|
|
|
|
|
o 0 a1
|
|
|
|
|
|
|
|
$ hg push
|
2015-05-12 22:28:15 +03:00
|
|
|
pushing rev e305ab9fea99 to destination $TESTTMP/repo1 bookmark a
|
2015-03-12 10:06:11 +03:00
|
|
|
searching for changes
|
|
|
|
no changes found
|
|
|
|
updating bookmark a
|
|
|
|
[1]
|
|
|
|
$ hg log -G -T '{rev} {desc} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 3 c c remote/a remote/b
|
|
|
|
|
|
|
|
|
o 2 b
|
|
|
|
|
|
|
|
|
o 1 a2
|
|
|
|
|
|
|
|
|
o 0 a1
|
|
|
|
|
|
|
|
|
2015-03-14 06:38:55 +03:00
|
|
|
Test untracking
|
|
|
|
|
|
|
|
$ hg book -v
|
2015-05-12 22:28:15 +03:00
|
|
|
* c 3:e305ab9fea99 [remote/a]
|
2015-03-14 06:38:55 +03:00
|
|
|
$ hg book -u c
|
|
|
|
$ hg book -v
|
2015-05-12 22:28:15 +03:00
|
|
|
* c 3:e305ab9fea99
|
2015-03-14 08:46:12 +03:00
|
|
|
|
|
|
|
Test that tracking isn't over-eager on rebase
|
|
|
|
|
|
|
|
$ hg up 1
|
2015-05-12 22:28:15 +03:00
|
|
|
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
2015-03-14 08:46:12 +03:00
|
|
|
(leaving bookmark c)
|
|
|
|
$ touch e
|
|
|
|
$ hg commit -qAm e
|
|
|
|
$ hg book c -r 1 -t remote/a -f
|
|
|
|
$ hg up c
|
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
(activating bookmark c)
|
|
|
|
$ touch d
|
|
|
|
$ hg commit -qAm d
|
|
|
|
$ hg log -G -T '{rev} {node|short} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 5 ff58066d17c3 c
|
|
|
|
|
|
|
|
|
| o 4 364e447d28f4
|
|
|
|
|/
|
2015-05-12 22:28:15 +03:00
|
|
|
| o 3 e305ab9fea99 remote/a remote/b
|
2015-03-14 08:46:12 +03:00
|
|
|
| |
|
2015-05-12 22:28:15 +03:00
|
|
|
| o 2 2623fce7de21
|
2015-03-14 08:46:12 +03:00
|
|
|
|/
|
|
|
|
o 1 fdceb0e57656
|
|
|
|
|
|
|
|
|
o 0 07199ae38cd5
|
|
|
|
|
|
|
|
$ hg bookmarks -v
|
2015-03-14 11:07:06 +03:00
|
|
|
* c 5:ff58066d17c3 [remote/a: 1 ahead, 2 behind]
|
2016-03-04 16:11:13 +03:00
|
|
|
$ hg rebase -s .
|
|
|
|
abort: no matching bookmark to rebase - please rebase to an explicit rev or bookmark
|
|
|
|
(run 'hg heads' to see all heads)
|
|
|
|
[255]
|
2015-03-14 08:46:12 +03:00
|
|
|
$ hg log -G -T '{rev} {node|short} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 5 ff58066d17c3 c
|
|
|
|
|
|
|
|
|
| o 4 364e447d28f4
|
|
|
|
|/
|
2015-05-12 22:28:15 +03:00
|
|
|
| o 3 e305ab9fea99 remote/a remote/b
|
2015-03-14 08:46:12 +03:00
|
|
|
| |
|
2015-05-12 22:28:15 +03:00
|
|
|
| o 2 2623fce7de21
|
2015-03-14 08:46:12 +03:00
|
|
|
|/
|
|
|
|
o 1 fdceb0e57656
|
|
|
|
|
|
|
|
|
o 0 07199ae38cd5
|
|
|
|
|
2015-03-14 09:46:20 +03:00
|
|
|
Test implicit rebase destination
|
|
|
|
|
|
|
|
$ hg log -G -T '{rev} {node|short} {bookmarks} {remotebookmarks}\n'
|
|
|
|
@ 5 ff58066d17c3 c
|
|
|
|
|
|
|
|
|
| o 4 364e447d28f4
|
|
|
|
|/
|
2015-05-12 22:28:15 +03:00
|
|
|
| o 3 e305ab9fea99 remote/a remote/b
|
2015-03-14 09:46:20 +03:00
|
|
|
| |
|
2015-05-12 22:28:15 +03:00
|
|
|
| o 2 2623fce7de21
|
2015-03-14 09:46:20 +03:00
|
|
|
|/
|
|
|
|
o 1 fdceb0e57656
|
|
|
|
|
|
|
|
|
o 0 07199ae38cd5
|
|
|
|
|
|
|
|
$ hg bookmarks -v
|
2015-03-14 11:07:06 +03:00
|
|
|
* c 5:ff58066d17c3 [remote/a: 1 ahead, 2 behind]
|
2015-03-19 10:06:51 +03:00
|
|
|
$ hg rebase
|
2017-09-28 16:52:46 +03:00
|
|
|
rebasing 5:ff58066d17c3 "d" (c tip)
|
2017-07-18 15:48:50 +03:00
|
|
|
saved backup bundle to $TESTTMP/repo2/.hg/strip-backup/ff58066d17c3-470dd0be-*.hg (glob)
|
2015-03-14 09:46:20 +03:00
|
|
|
$ hg log -G -T '{rev} {node|short} {bookmarks} {remotebookmarks}\n'
|
2015-05-12 22:28:15 +03:00
|
|
|
@ 5 8d13dc14fef1 c
|
2015-03-14 09:46:20 +03:00
|
|
|
|
|
|
|
|
| o 4 364e447d28f4
|
|
|
|
| |
|
2015-05-12 22:28:15 +03:00
|
|
|
o | 3 e305ab9fea99 remote/a remote/b
|
2015-03-14 09:46:20 +03:00
|
|
|
| |
|
2015-05-12 22:28:15 +03:00
|
|
|
o | 2 2623fce7de21
|
2015-03-14 09:46:20 +03:00
|
|
|
|/
|
|
|
|
o 1 fdceb0e57656
|
|
|
|
|
|
|
|
|
o 0 07199ae38cd5
|
|
|
|
|
2015-04-01 06:09:26 +03:00
|
|
|
|
|
|
|
Test distance to tip calculation
|
|
|
|
|
|
|
|
$ test -f .hg/cache/distance.current
|
|
|
|
[1]
|
|
|
|
$ hg up 3
|
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
(leaving bookmark c)
|
|
|
|
$ cat .hg/cache/distance.current
|
|
|
|
c 1 (no-eol)
|
|
|
|
$ hg up 2
|
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
$ cat .hg/cache/distance.current
|
|
|
|
c 2 (no-eol)
|
|
|
|
$ hg up 4
|
2015-05-12 22:28:15 +03:00
|
|
|
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
2015-04-01 06:09:26 +03:00
|
|
|
$ test -f .hg/cache/distance.current
|
|
|
|
[1]
|
|
|
|
$ hg up c
|
2015-05-12 22:28:15 +03:00
|
|
|
4 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
2015-04-01 06:09:26 +03:00
|
|
|
(activating bookmark c)
|
|
|
|
|
2015-03-19 10:07:08 +03:00
|
|
|
Test when a local bookmark that was tracking goes missing
|
|
|
|
|
|
|
|
$ hg book -v
|
2015-05-12 22:28:15 +03:00
|
|
|
* c 5:8d13dc14fef1 [remote/a: 1 ahead, 0 behind]
|
2015-03-19 10:07:08 +03:00
|
|
|
$ rm .hg/bookmarks
|
|
|
|
$ hg book d
|
|
|
|
$ hg book -v
|
2015-05-12 22:28:15 +03:00
|
|
|
* d 5:8d13dc14fef1
|
2015-04-13 20:44:58 +03:00
|
|
|
|
2015-07-17 00:15:55 +03:00
|
|
|
Test renaming a bookmark with tracking
|
|
|
|
|
|
|
|
$ hg book d -t remote/a
|
|
|
|
$ hg book -v
|
|
|
|
* d 5:8d13dc14fef1 [remote/a: 1 ahead, 0 behind]
|
|
|
|
$ hg book -m d x
|
|
|
|
$ hg book -v
|
|
|
|
* x 5:8d13dc14fef1 [remote/a: 1 ahead, 0 behind]
|
|
|
|
|
2015-09-02 20:59:32 +03:00
|
|
|
Test renaming a bookmark without tracking
|
|
|
|
|
|
|
|
$ hg book -u x
|
|
|
|
$ hg book -v
|
|
|
|
* x 5:8d13dc14fef1
|
|
|
|
$ hg book -m x d
|
|
|
|
$ hg book -v
|
|
|
|
* d 5:8d13dc14fef1
|
|
|
|
$ hg book -d d
|
|
|
|
|
2015-04-28 01:01:22 +03:00
|
|
|
Test bookmarks with difficult characters
|
|
|
|
|
|
|
|
$ hg book -t remote/a "bookmark with spaces"
|
|
|
|
$ hg book -t remote/b "with tab too"
|
|
|
|
$ hg book -t remote/a "bookmark/with/slashes"
|
|
|
|
$ hg book -v
|
2015-05-12 22:28:15 +03:00
|
|
|
bookmark with spaces 5:8d13dc14fef1
|
|
|
|
* bookmark/with/slashes 5:8d13dc14fef1 [remote/a: 1 ahead, 0 behind]
|
|
|
|
with tab too 5:8d13dc14fef1
|
2015-04-28 01:01:22 +03:00
|
|
|
$ hg update bookmark/with/slashes
|
|
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ hg book -v
|
2015-05-12 22:28:15 +03:00
|
|
|
bookmark with spaces 5:8d13dc14fef1
|
|
|
|
* bookmark/with/slashes 5:8d13dc14fef1 [remote/a: 1 ahead, 0 behind]
|
|
|
|
with tab too 5:8d13dc14fef1
|