2011-03-30 04:02:06 +04:00
|
|
|
> echo "[extensions]" >> $HGRCPATH
|
2014-04-01 04:27:54 +04:00
|
|
|
> echo "remotenames=$(echo $(dirname $TESTDIR))/remotenames.py" >> $HGRCPATH
|
2011-03-30 04:02:06 +04:00
|
|
|
|
|
|
|
> FILTERPWD="sed s%$PWD/%%g"
|
|
|
|
|
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"
|
|
|
|
> }
|
|
|
|
|
|
|
|
$ hg init alpha
|
|
|
|
$ cd alpha
|
|
|
|
$ mkcommit a
|
|
|
|
$ mkcommit b
|
2012-01-27 23:51:12 +04:00
|
|
|
$ hg branch stable | grep -v 'permanent and global'
|
2011-03-30 04:02:06 +04:00
|
|
|
marked working directory as branch stable
|
|
|
|
$ 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
|
|
|
|
$ mkcommit d
|
|
|
|
$ hg co -C stable
|
|
|
|
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
$ 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
|
|
|
|
(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
|
|
|
|
(run 'hg update' to get a working copy)
|
|
|
|
$ hg co -C default
|
|
|
|
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
2012-01-27 23:51:12 +04:00
|
|
|
$ hg branch default | grep -v 'permanent and global'
|
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
|
2014-03-31 21:34:43 +04:00
|
|
|
| | remotename: 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
|
2014-03-31 21:34:43 +04:00
|
|
|
| | remotename: 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
|
2014-03-31 21:34:43 +04:00
|
|
|
| remotename: 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
|
2014-03-31 21:34:43 +04:00
|
|
|
| remotename: 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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
Upstream without configuration is synonymous with pushed():
|
2012-01-27 23:51:12 +04:00
|
|
|
$ hg log -r 'not upstream()'
|
|
|
|
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
|
2014-03-31 21:34:43 +04:00
|
|
|
| | remotename: beta/stable
|
2011-03-30 04:02:08 +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
|
2014-03-31 21:34:43 +04:00
|
|
|
| | remotename: beta/default
|
2011-03-30 04:02:08 +04:00
|
|
|
| | 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
|
2014-03-31 21:34:43 +04:00
|
|
|
| remotename: alpha/stable
|
2014-02-19 01:16:26 +04:00
|
|
|
| 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
|
|
|
|
3:78f83396d79e beta/default
|
|
|
|
4:8948da77173b beta/stable
|