mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 01:39:21 +03:00
ad813edcbd
Summary: Now that all our repos are treemanifest, let's enable the extension by default in tests. Once we're certain no one needs it in production we'll also make it the default in core Mercurial. This diff includes a minor fix in treemanifest to be aware of always-enabled extensions. It won't matter until we actually add treemanifest to the list of default enabled extensions, but I caught this while testing things. Reviewed By: ikostia Differential Revision: D15030253 fbshipit-source-id: d8361f915928b6ad90665e6ed330c1df5c8d8d86
270 lines
6.8 KiB
Perl
270 lines
6.8 KiB
Perl
> echo "[extensions]" >> $HGRCPATH
|
|
> echo "remotenames=" >> $HGRCPATH
|
|
|
|
> FILTERPWD="sed s%`pwd`/%%g"
|
|
|
|
> mkcommit()
|
|
> {
|
|
> echo $1 > $1
|
|
> hg add $1
|
|
> hg ci -m "add $1"
|
|
> }
|
|
|
|
$ setconfig extensions.treemanifest=!
|
|
|
|
Test that remotenames works on a repo without any names file
|
|
|
|
$ hg init alpha
|
|
$ cd alpha
|
|
$ mkcommit a
|
|
$ mkcommit b
|
|
$ hg log -r 'upstream()'
|
|
$ hg log -r . -T '{remotenames} {remotebookmarks}\n'
|
|
|
|
|
|
Continue testing
|
|
|
|
$ mkcommit c
|
|
$ cd ..
|
|
$ hg clone alpha beta | $FILTERPWD
|
|
updating to branch default
|
|
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd beta
|
|
$ hg book babar
|
|
$ mkcommit d
|
|
$ 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
|
|
new changesets 1f0dee641bb7:4538525df7e2
|
|
$ hg pull beta | $FILTERPWD
|
|
pulling from beta
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
new changesets 47d2a3944de8
|
|
$ hg co -C default
|
|
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ mkcommit e
|
|
|
|
graph shows tags for the branch heads of each path
|
|
$ hg log --graph
|
|
@ changeset: 4:9d206ffc875e
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: add e
|
|
|
|
|
o changeset: 3:47d2a3944de8
|
|
| bookmark: beta/babar
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: add d
|
|
|
|
|
o changeset: 2:4538525df7e2
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: add c
|
|
|
|
|
o changeset: 1:7c3bad9141dc
|
|
| 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
|
|
|
|
|
|
make sure we can list remote bookmarks with --all
|
|
|
|
$ hg bookmarks --all
|
|
no bookmarks set
|
|
beta/babar 3:47d2a3944de8
|
|
|
|
$ hg bookmarks --all -T json
|
|
[
|
|
{
|
|
"node": "47d2a3944de8b013de3be9578e8e344ea2e6c097",
|
|
"remotebookmark": "beta/babar",
|
|
"rev": 3
|
|
}
|
|
]
|
|
$ hg bookmarks --remote
|
|
beta/babar 3:47d2a3944de8
|
|
|
|
Verify missing node doesnt break remotenames
|
|
|
|
$ echo "18f8e0f8ba54270bf158734c781327581cf43634 bookmarks beta/foo" >> .hg/remotenames
|
|
$ hg book --remote --config remotenames.resolvenodes=False
|
|
beta/babar 3:47d2a3944de8
|
|
|
|
make sure bogus revisions in .hg/remotenames do not break hg
|
|
$ echo deadbeefdeadbeefdeadbeefdeadbeefdeadbeef default/default >> \
|
|
> .hg/remotenames
|
|
$ hg parents
|
|
changeset: 4:9d206ffc875e
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add e
|
|
|
|
Verify that the revsets operate as expected:
|
|
$ hg log -r 'not pushed()'
|
|
changeset: 4:9d206ffc875e
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add e
|
|
|
|
|
|
|
|
Upstream without configuration is synonymous with upstream('default'):
|
|
$ hg log -r 'not upstream()'
|
|
changeset: 0:1f0dee641bb7
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add a
|
|
|
|
changeset: 1:7c3bad9141dc
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add b
|
|
|
|
changeset: 2:4538525df7e2
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add c
|
|
|
|
changeset: 3:47d2a3944de8
|
|
bookmark: beta/babar
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add d
|
|
|
|
changeset: 4:9d206ffc875e
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add e
|
|
|
|
|
|
but configured, it'll do the expected thing:
|
|
$ echo '[remotenames]' >> .hg/hgrc
|
|
$ echo 'upstream=alpha' >> .hg/hgrc
|
|
$ hg log --graph -r 'not upstream()'
|
|
@ changeset: 4:9d206ffc875e
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: add e
|
|
|
|
|
o changeset: 3:47d2a3944de8
|
|
| bookmark: beta/babar
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: add d
|
|
|
|
|
o changeset: 2:4538525df7e2
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: add c
|
|
|
|
|
o changeset: 1:7c3bad9141dc
|
|
| 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
|
|
|
|
$ hg log --limit 2 --graph -r 'heads(upstream())'
|
|
|
|
Test remotenames revset and keyword
|
|
|
|
$ hg log -r 'remotenames()' \
|
|
> --template '{rev}:{node|short} {remotenames}\n'
|
|
3:47d2a3944de8 beta/babar
|
|
|
|
Test remotebookmark revsets
|
|
|
|
$ hg log -r 'remotebookmark()' \
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
3:47d2a3944de8 beta/babar
|
|
$ hg log -r 'remotebookmark("beta/babar")' \
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
3:47d2a3944de8 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 'remotebookmark("re:beta/.*")' \
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
3:47d2a3944de8 beta/babar
|
|
$ hg log -r 'remotebookmark("re:gamma/.*")' \
|
|
> --template '{rev}:{node|short} {remotebookmarks}\n'
|
|
abort: no remote bookmarks exist that match 're:gamma/.*'!
|
|
[255]
|
|
|
|
Test clone --mirror
|
|
|
|
$ cd ..
|
|
$ cd alpha
|
|
$ hg book foo bar baz
|
|
$ cd ..
|
|
$ hg clone --mirror alpha mirror
|
|
updating to branch default
|
|
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd mirror
|
|
$ hg book
|
|
bar 2:4538525df7e2
|
|
baz 2:4538525df7e2
|
|
foo 2:4538525df7e2
|
|
|
|
Test loading with hggit
|
|
|
|
$ . "$TESTDIR/hggit/testutil"
|
|
$ echo "[extensions]" >> $HGRCPATH
|
|
$ echo "hggit=" >> $HGRCPATH
|
|
$ echo "[devel]" >> $HGRCPATH
|
|
$ echo "all-warnings=no" >> $HGRCPATH
|
|
$ hg help bookmarks | egrep -- '--(un){0,1}track'
|
|
-t --track BOOKMARK track this bookmark or remote name
|
|
-u --untrack remove tracking for this bookmark
|
|
|
|
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]
|