2011-03-30 04:02:06 +04:00
|
|
|
> echo "[extensions]" >> $HGRCPATH
|
2018-01-03 17:15:47 +03:00
|
|
|
> echo "remotenames=" >> $HGRCPATH
|
2011-03-30 04:02:06 +04:00
|
|
|
|
2015-03-12 00:53:36 +03:00
|
|
|
> FILTERPWD="sed s%`pwd`/%%g"
|
2011-03-30 04:02:06 +04:00
|
|
|
|
2011-10-31 20:26:49 +04:00
|
|
|
> mkcommit()
|
2011-03-30 04:02:06 +04:00
|
|
|
> {
|
|
|
|
> echo $1 > $1
|
|
|
|
> hg add $1
|
|
|
|
> hg ci -m "add $1"
|
|
|
|
> }
|
|
|
|
|
2014-12-17 09:23:41 +03:00
|
|
|
Test that remotenames works on a repo without any names file
|
|
|
|
|
2011-03-30 04:02:06 +04:00
|
|
|
$ hg init alpha
|
|
|
|
$ cd alpha
|
|
|
|
$ mkcommit a
|
|
|
|
$ mkcommit b
|
2014-12-17 09:23:41 +03:00
|
|
|
$ hg log -r 'upstream()'
|
2015-01-17 03:08:04 +03:00
|
|
|
$ hg log -r . -T '{remotenames} {remotebranches} {remotebookmarks}\n'
|
|
|
|
|
2014-12-17 09:23:41 +03:00
|
|
|
|
|
|
|
Continue testing
|
|
|
|
|
2014-12-16 20:24:18 +03:00
|
|
|
$ hg branch stable
|
2011-03-30 04:02:06 +04:00
|
|
|
marked working directory as branch stable
|
2014-12-16 20:24:18 +03:00
|
|
|
(branches are permanent and global, did you want a bookmark?)
|
2011-03-30 04:02:06 +04:00
|
|
|
$ mkcommit c
|
|
|
|
$ cd ..
|
|
|
|
$ hg clone alpha beta | $FILTERPWD
|
|
|
|
updating to branch default
|
|
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ cd beta
|
2014-12-16 20:28:59 +03:00
|
|
|
$ hg book babar
|
2011-03-30 04:02:06 +04:00
|
|
|
$ mkcommit d
|
|
|
|
$ hg co -C stable
|
|
|
|
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
2014-12-16 20:28:59 +03:00
|
|
|
(leaving bookmark babar)
|
2011-03-30 04:02:06 +04:00
|
|
|
$ hg merge default
|
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
(branch merge, don't forget to commit)
|
|
|
|
$ hg ci -m 'merged'
|
|
|
|
$ cd ..
|
|
|
|
|
|
|
|
$ hg init gamma
|
|
|
|
$ cd gamma
|
|
|
|
$ cat > .hg/hgrc <<EOF
|
|
|
|
> [paths]
|
|
|
|
> default = ../alpha
|
|
|
|
> alpha = ../alpha
|
|
|
|
> beta = ../beta
|
|
|
|
> EOF
|
|
|
|
$ hg pull | $FILTERPWD
|
|
|
|
pulling from alpha
|
|
|
|
requesting all changes
|
|
|
|
adding changesets
|
|
|
|
adding manifests
|
|
|
|
adding file changes
|
|
|
|
added 3 changesets with 3 changes to 3 files
|
2017-10-18 01:24:27 +03:00
|
|
|
new changesets 1f0dee641bb7:95cb4ab9fe1d
|
2011-03-30 04:02:06 +04:00
|
|
|
(run 'hg update' to get a working copy)
|
|
|
|
$ hg pull beta | $FILTERPWD
|
|
|
|
pulling from beta
|
|
|
|
searching for changes
|
|
|
|
adding changesets
|
|
|
|
adding manifests
|
|
|
|
adding file changes
|
|
|
|
added 2 changesets with 1 changes to 1 files
|
2017-10-18 01:24:27 +03:00
|
|
|
new changesets 78f83396d79e:8948da77173b
|
2011-03-30 04:02:06 +04:00
|
|
|
(run 'hg update' to get a working copy)
|
|
|
|
$ hg co -C default
|
|
|
|
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
2014-12-16 20:24:18 +03:00
|
|
|
$ hg branch default
|
2011-03-30 04:02:06 +04:00
|
|
|
marked working directory as branch default
|
|
|
|
$ mkcommit e
|
|
|
|
$ hg merge stable
|
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
(branch merge, don't forget to commit)
|
|
|
|
$ hg ci -m 'merging stable'
|
|
|
|
|
|
|
|
graph shows tags for the branch heads of each path
|
|
|
|
$ hg log --graph
|
|
|
|
@ changeset: 6:ce61ec32ee23
|
|
|
|
|\ tag: tip
|
|
|
|
| | parent: 5:6d6442577283
|
|
|
|
| | parent: 4:8948da77173b
|
|
|
|
| | user: test
|
|
|
|
| | date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| | summary: merging stable
|
|
|
|
| |
|
|
|
|
| o changeset: 5:6d6442577283
|
|
|
|
| | parent: 3:78f83396d79e
|
|
|
|
| | user: test
|
|
|
|
| | date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| | summary: add e
|
|
|
|
| |
|
|
|
|
o | changeset: 4:8948da77173b
|
|
|
|
|\| branch: stable
|
2015-01-15 01:45:24 +03:00
|
|
|
| | branch: beta/stable
|
2011-03-30 04:02:06 +04:00
|
|
|
| | parent: 2:95cb4ab9fe1d
|
|
|
|
| | parent: 3:78f83396d79e
|
|
|
|
| | user: test
|
|
|
|
| | date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| | summary: merged
|
|
|
|
| |
|
|
|
|
| o changeset: 3:78f83396d79e
|
2015-01-15 01:45:24 +03:00
|
|
|
| | bookmark: beta/babar
|
|
|
|
| | branch: beta/default
|
2011-03-30 04:02:06 +04:00
|
|
|
| | parent: 1:7c3bad9141dc
|
|
|
|
| | user: test
|
|
|
|
| | date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| | summary: add d
|
|
|
|
| |
|
|
|
|
o | changeset: 2:95cb4ab9fe1d
|
|
|
|
|/ branch: stable
|
2015-01-15 01:45:24 +03:00
|
|
|
| branch: alpha/stable
|
2011-03-30 04:02:06 +04:00
|
|
|
| user: test
|
|
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| summary: add c
|
|
|
|
|
|
|
|
|
o changeset: 1:7c3bad9141dc
|
2015-01-15 01:45:24 +03:00
|
|
|
| branch: alpha/default
|
2011-03-30 04:02:06 +04:00
|
|
|
| user: test
|
|
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| summary: add b
|
|
|
|
|
|
|
|
|
o changeset: 0:1f0dee641bb7
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: add a
|
|
|
|
|
|
|
|
|
2015-01-17 01:48:56 +03:00
|
|
|
make sure we can list remote bookmarks with --all
|
|
|
|
|
|
|
|
$ hg bookmarks --all
|
2015-02-10 03:10:55 +03:00
|
|
|
no bookmarks set
|
2015-01-17 01:48:56 +03:00
|
|
|
beta/babar 3:78f83396d79e
|
|
|
|
|
2017-05-26 13:24:11 +03:00
|
|
|
$ hg bookmarks --all -T json
|
|
|
|
[
|
|
|
|
{
|
|
|
|
"node": "78f83396d79eebd439e09cb900db376fadb4d580",
|
|
|
|
"remotebookmark": "beta/babar",
|
|
|
|
"rev": 3
|
|
|
|
}
|
|
|
|
]
|
2015-01-17 02:47:07 +03:00
|
|
|
$ hg bookmarks --remote
|
|
|
|
beta/babar 3:78f83396d79e
|
|
|
|
|
2015-01-17 01:06:05 +03:00
|
|
|
$ hg branches --all
|
|
|
|
default 6:ce61ec32ee23
|
|
|
|
stable 4:8948da77173b (inactive)
|
|
|
|
beta/stable 4:8948da77173b
|
2015-01-17 02:47:07 +03:00
|
|
|
beta/default 3:78f83396d79e
|
|
|
|
alpha/stable 2:95cb4ab9fe1d
|
|
|
|
alpha/default 1:7c3bad9141dc
|
|
|
|
|
|
|
|
$ hg branches --remote
|
|
|
|
beta/stable 4:8948da77173b
|
2015-01-17 01:06:05 +03:00
|
|
|
beta/default 3:78f83396d79e
|
|
|
|
alpha/stable 2:95cb4ab9fe1d
|
|
|
|
alpha/default 1:7c3bad9141dc
|
2015-01-17 01:48:56 +03:00
|
|
|
|
2017-06-06 21:31:32 +03:00
|
|
|
Verify missing node doesnt break remotenames
|
|
|
|
|
|
|
|
$ echo "18f8e0f8ba54270bf158734c781327581cf43634 bookmarks beta/foo" >> .hg/remotenames
|
|
|
|
$ hg book --remote --config remotenames.resolvenodes=False
|
|
|
|
beta/babar 3:78f83396d79e
|
|
|
|
|
2014-04-01 04:27:54 +04:00
|
|
|
make sure bogus revisions in .hg/remotenames do not break hg
|
2011-03-30 04:02:08 +04:00
|
|
|
$ echo deadbeefdeadbeefdeadbeefdeadbeefdeadbeef default/default >> \
|
2014-04-01 04:27:54 +04:00
|
|
|
> .hg/remotenames
|
2011-03-30 04:02:06 +04:00
|
|
|
$ hg parents
|
|
|
|
changeset: 6:ce61ec32ee23
|
|
|
|
tag: tip
|
|
|
|
parent: 5:6d6442577283
|
|
|
|
parent: 4:8948da77173b
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: merging stable
|
|
|
|
|
2011-03-30 04:02:08 +04:00
|
|
|
Verify that the revsets operate as expected:
|
2012-01-27 23:51:12 +04:00
|
|
|
$ hg log -r 'not pushed()'
|
|
|
|
changeset: 5:6d6442577283
|
|
|
|
parent: 3:78f83396d79e
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: add e
|
|
|
|
|
|
|
|
changeset: 6:ce61ec32ee23
|
|
|
|
tag: tip
|
|
|
|
parent: 5:6d6442577283
|
|
|
|
parent: 4:8948da77173b
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: merging stable
|
|
|
|
|
|
|
|
|
2011-03-30 04:02:08 +04:00
|
|
|
|
2015-02-27 01:05:15 +03:00
|
|
|
Upstream without configuration is synonymous with upstream('default'):
|
2012-01-27 23:51:12 +04:00
|
|
|
$ hg log -r 'not upstream()'
|
2015-02-27 01:05:15 +03:00
|
|
|
changeset: 3:78f83396d79e
|
|
|
|
bookmark: beta/babar
|
|
|
|
branch: beta/default
|
|
|
|
parent: 1:7c3bad9141dc
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: add d
|
|
|
|
|
|
|
|
changeset: 4:8948da77173b
|
|
|
|
branch: stable
|
|
|
|
branch: beta/stable
|
|
|
|
parent: 2:95cb4ab9fe1d
|
|
|
|
parent: 3:78f83396d79e
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: merged
|
|
|
|
|
2012-01-27 23:51:12 +04:00
|
|
|
changeset: 5:6d6442577283
|
|
|
|
parent: 3:78f83396d79e
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: add e
|
|
|
|
|
|
|
|
changeset: 6:ce61ec32ee23
|
|
|
|
tag: tip
|
|
|
|
parent: 5:6d6442577283
|
|
|
|
parent: 4:8948da77173b
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: merging stable
|
|
|
|
|
2011-03-30 04:02:08 +04:00
|
|
|
|
|
|
|
but configured, it'll do the expected thing:
|
2014-04-01 04:27:54 +04:00
|
|
|
$ echo '[remotenames]' >> .hg/hgrc
|
2011-03-30 04:02:08 +04:00
|
|
|
$ echo 'upstream=alpha' >> .hg/hgrc
|
|
|
|
$ hg log --graph -r 'not upstream()'
|
|
|
|
@ changeset: 6:ce61ec32ee23
|
|
|
|
|\ tag: tip
|
|
|
|
| | parent: 5:6d6442577283
|
|
|
|
| | parent: 4:8948da77173b
|
|
|
|
| | user: test
|
|
|
|
| | date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| | summary: merging stable
|
|
|
|
| |
|
|
|
|
| o changeset: 5:6d6442577283
|
|
|
|
| | parent: 3:78f83396d79e
|
|
|
|
| | user: test
|
|
|
|
| | date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| | summary: add e
|
|
|
|
| |
|
|
|
|
o | changeset: 4:8948da77173b
|
|
|
|
|\| branch: stable
|
2016-04-11 22:26:11 +03:00
|
|
|
~ | branch: beta/stable
|
|
|
|
| parent: 2:95cb4ab9fe1d
|
|
|
|
| parent: 3:78f83396d79e
|
|
|
|
| user: test
|
|
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
| summary: merged
|
|
|
|
/
|
|
|
|
o changeset: 3:78f83396d79e
|
|
|
|
| bookmark: beta/babar
|
|
|
|
~ branch: beta/default
|
|
|
|
parent: 1:7c3bad9141dc
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: add d
|
|
|
|
|
2014-02-19 01:16:26 +04:00
|
|
|
$ hg log --limit 2 --graph -r 'heads(upstream())'
|
|
|
|
o changeset: 2:95cb4ab9fe1d
|
|
|
|
| branch: stable
|
2016-04-11 22:26:11 +03:00
|
|
|
~ branch: alpha/stable
|
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: add c
|
|
|
|
|
2012-06-20 13:24:55 +04:00
|
|
|
|
2014-04-01 04:27:54 +04:00
|
|
|
Test remotenames revset and keyword
|
2012-06-20 13:24:55 +04:00
|
|
|
|
2014-04-01 04:27:54 +04:00
|
|
|
$ hg log -r 'remotenames()' \
|
|
|
|
> --template '{rev}:{node|short} {remotenames}\n'
|
2012-06-20 13:24:55 +04:00
|
|
|
1:7c3bad9141dc alpha/default
|
|
|
|
2:95cb4ab9fe1d alpha/stable
|
2014-12-16 20:28:59 +03:00
|
|
|
3:78f83396d79e beta/babar beta/default
|
2012-06-20 13:24:55 +04:00
|
|
|
4:8948da77173b beta/stable
|
2015-03-03 10:22:51 +03:00
|
|
|
|
2018-06-26 12:51:37 +03:00
|
|
|
Test remotebookmark and remotebranch revsets
|
|
|
|
|
|
|
|
$ hg log -r 'remotebookmark()' \
|
|
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
|
|
3:78f83396d79e beta/babar
|
|
|
|
$ hg log -r 'remotebranch()' \
|
|
|
|
> --template '{rev}:{node|short} {remotebranches}\n'
|
|
|
|
1:7c3bad9141dc alpha/default
|
|
|
|
2:95cb4ab9fe1d alpha/stable
|
|
|
|
3:78f83396d79e beta/default
|
|
|
|
4:8948da77173b beta/stable
|
|
|
|
$ hg log -r 'remotebookmark("beta/babar")' \
|
|
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
|
|
3:78f83396d79e beta/babar
|
|
|
|
$ hg log -r 'remotebookmark("beta/stable")' \
|
|
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
|
|
abort: no remote bookmarks exist that match 'beta/stable'!
|
|
|
|
[255]
|
|
|
|
$ hg log -r 'remotebranch("beta/stable")' \
|
|
|
|
> --template '{rev}:{node|short} {remotebranches}\n'
|
|
|
|
4:8948da77173b beta/stable
|
|
|
|
$ hg log -r 'remotebookmark("re:beta/.*")' \
|
|
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
|
|
3:78f83396d79e beta/babar
|
|
|
|
$ hg log -r 'remotebookmark("re:gamma/.*")' \
|
|
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
|
|
abort: no remote bookmarks exist that match 're:gamma/.*'!
|
|
|
|
[255]
|
|
|
|
|
2015-03-14 04:02:21 +03:00
|
|
|
Test clone --mirror
|
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
$ cd alpha
|
|
|
|
$ hg book foo bar baz
|
|
|
|
$ cd ..
|
|
|
|
$ hg clone --mirror alpha mirror
|
|
|
|
updating to branch default
|
|
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ cd mirror
|
|
|
|
$ hg book
|
|
|
|
bar 2:95cb4ab9fe1d
|
|
|
|
baz 2:95cb4ab9fe1d
|
|
|
|
foo 2:95cb4ab9fe1d
|
extsetup: use more generic hggit check and wrap commands earlier
Other extensions (eg, pushrebase) need to wrap commands after remotenames so
they can modify inputs to prevent remotenames from complaining about, eg, a
push --to that would not be a fast-forward. By using the afterloaded() call,
which doesn't do what we expect anyway, we prevented pushrebase from being able
to wrap these functions after remotenames did.
Instead, we change to wrap the command immediately, and then force the option
modifications to the end, by loading them "after" a non-existant extension.
Furthermore, we make the option additions more generic: if any other extension
(including hggit) adds the paramters we want to add, we skip adding them again.
2015-07-07 08:02:34 +03:00
|
|
|
|
2018-01-10 19:15:55 +03:00
|
|
|
Test loading with hggit
|
|
|
|
|
2018-01-23 23:09:12 +03:00
|
|
|
$ . "$TESTDIR/hggit/testutil"
|
2018-01-10 19:15:55 +03:00
|
|
|
$ echo "[extensions]" >> $HGRCPATH
|
|
|
|
$ echo "hggit=" >> $HGRCPATH
|
|
|
|
$ echo "[devel]" >> $HGRCPATH
|
|
|
|
$ echo "all-warnings=no" >> $HGRCPATH
|
2018-01-23 23:09:12 +03:00
|
|
|
$ hg help bookmarks | egrep -- '--(un){0,1}track'
|
2018-01-10 19:15:55 +03:00
|
|
|
-t --track BOOKMARK track this bookmark or remote name
|
|
|
|
-u --untrack remove tracking for this bookmark
|
|
|
|
|
|
|
|
Test branches marked as closed are not loaded
|
|
|
|
$ cd ../alpha
|
|
|
|
$ hg branch
|
|
|
|
stable
|
|
|
|
$ hg commit --close-branch -m 'close this branch'
|
|
|
|
|
|
|
|
$ cd ../beta
|
|
|
|
$ hg branches --remote
|
|
|
|
default/stable 2:95cb4ab9fe1d
|
|
|
|
default/default 1:7c3bad9141dc
|
|
|
|
$ hg pull -q
|
|
|
|
$ hg branches --remote
|
|
|
|
default/default 1:7c3bad9141dc
|
|
|
|
|
|
|
|
Test json formatted bookmarks with tracking data
|
|
|
|
$ cd ..
|
|
|
|
$ hg init delta
|
|
|
|
$ cd delta
|
|
|
|
$ hg book mimimi -t lalala
|
|
|
|
$ hg book -v -T json
|
|
|
|
[
|
|
|
|
{
|
|
|
|
"active": true,
|
|
|
|
"bookmark": "mimimi",
|
|
|
|
"node": "0000000000000000000000000000000000000000",
|
|
|
|
"rev": -1,
|
|
|
|
"tracking": "lalala"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
$ hg book -v
|
|
|
|
* mimimi -1:000000000000 [lalala]
|