mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 01:39:21 +03:00
4a7b28d08b
Summary: Previously `hg server` uses `HGPORT` that might be in use. This patch uses `-p 0 --port-file ...` so `hg server` always gets assigned a free port. The change was first made by the following Ruby script: ``` re = /^ \$ hg serve(.*) -p \$(HGPORT[12]?) (.*[^\\])$\n \$/ Dir['*.t'].each do |path| old = File.read(path) new = old.lines.map do |l| next l if l[/\(glob\)/] or not l['$HGPORT'] or l[/^ [$>]/] "#{l.chomp} (glob)\n" end.join.gsub re, <<-'EOS'.chomp $ hg serve\1 -p 0 --port-file $TESTTMP/.port \3 $ \2=`cat $TESTTMP/.port` $ EOS File.write(path, new) if old != new end ``` Then there are some manual changes: run-tests.py: It now treats `$HGPORT` in output as glob pattern `*`, since it does not know the assigned value in tests. test-bookmarks-pushpull.t, test-https.t: Some `hg pull`s were changed to use explicit paths instead of relying on `.hgrc` since the test restarts the server and `.hg/hgrc` having an outdated URL. test-schemes.t: The test writes `$HGPORT` to `.hgrc` before assigning it. Changed the order so the correct `$HGPORT` is written. test-patchbomb-tls.t: Changed `(?) (glob)` to `(glob) (?)`. Reviewed By: DurhamG Differential Revision: D6925398 fbshipit-source-id: d5c10476f43ce23f9e99618807580cf8ba92595c
165 lines
3.2 KiB
Perl
165 lines
3.2 KiB
Perl
#require serve
|
|
|
|
#if no-outer-repo
|
|
|
|
no repo
|
|
|
|
$ hg id
|
|
abort: there is no Mercurial repository here (.hg not found)
|
|
[255]
|
|
|
|
#endif
|
|
|
|
create repo
|
|
|
|
$ hg init test
|
|
$ cd test
|
|
$ echo a > a
|
|
$ hg ci -Ama
|
|
adding a
|
|
|
|
basic id usage
|
|
|
|
$ hg id
|
|
cb9a9f314b8b tip
|
|
$ hg id --debug
|
|
cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b tip
|
|
$ hg id -q
|
|
cb9a9f314b8b
|
|
$ hg id -v
|
|
cb9a9f314b8b tip
|
|
|
|
with options
|
|
|
|
$ hg id -r.
|
|
cb9a9f314b8b tip
|
|
$ hg id -n
|
|
0
|
|
$ hg id -t
|
|
tip
|
|
$ hg id -b
|
|
default
|
|
$ hg id -i
|
|
cb9a9f314b8b
|
|
$ hg id -n -t -b -i
|
|
cb9a9f314b8b 0 default tip
|
|
$ hg id -Tjson
|
|
[
|
|
{
|
|
"bookmarks": [],
|
|
"branch": "default",
|
|
"dirty": "",
|
|
"id": "cb9a9f314b8b",
|
|
"node": "ffffffffffffffffffffffffffffffffffffffff",
|
|
"parents": [{"node": "cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b", "rev": 0}],
|
|
"tags": ["tip"]
|
|
}
|
|
]
|
|
|
|
test template keywords and functions which require changectx:
|
|
|
|
$ hg id -T '{rev} {node|shortest}\n'
|
|
2147483647 ffff
|
|
$ hg id -T '{parents % "{rev} {node|shortest} {desc}\n"}'
|
|
0 cb9a a
|
|
|
|
with modifications
|
|
|
|
$ echo b > a
|
|
$ hg id -n -t -b -i
|
|
cb9a9f314b8b+ 0+ default tip
|
|
$ hg id -Tjson
|
|
[
|
|
{
|
|
"bookmarks": [],
|
|
"branch": "default",
|
|
"dirty": "+",
|
|
"id": "cb9a9f314b8b+",
|
|
"node": "ffffffffffffffffffffffffffffffffffffffff",
|
|
"parents": [{"node": "cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b", "rev": 0}],
|
|
"tags": ["tip"]
|
|
}
|
|
]
|
|
|
|
other local repo
|
|
|
|
$ cd ..
|
|
$ hg -R test id
|
|
cb9a9f314b8b+ tip
|
|
#if no-outer-repo
|
|
$ hg id test
|
|
cb9a9f314b8b+ tip
|
|
#endif
|
|
|
|
with remote http repo
|
|
|
|
$ cd test
|
|
$ hg serve -p 0 --port-file $TESTTMP/.port -d --pid-file=hg.pid
|
|
$ HGPORT1=`cat $TESTTMP/.port`
|
|
$ cat hg.pid >> $DAEMON_PIDS
|
|
$ hg id http://localhost:$HGPORT1/
|
|
cb9a9f314b8b
|
|
|
|
remote with rev number?
|
|
|
|
$ hg id -n http://localhost:$HGPORT1/
|
|
abort: can't query remote revision number, branch, or tags
|
|
[255]
|
|
|
|
remote with tags?
|
|
|
|
$ hg id -t http://localhost:$HGPORT1/
|
|
abort: can't query remote revision number, branch, or tags
|
|
[255]
|
|
|
|
remote with branch?
|
|
|
|
$ hg id -b http://localhost:$HGPORT1/
|
|
abort: can't query remote revision number, branch, or tags
|
|
[255]
|
|
|
|
test bookmark support
|
|
|
|
$ hg bookmark Y
|
|
$ hg bookmark Z
|
|
$ hg bookmarks
|
|
Y 0:cb9a9f314b8b
|
|
* Z 0:cb9a9f314b8b
|
|
$ hg id
|
|
cb9a9f314b8b+ tip Y/Z
|
|
$ hg id --bookmarks
|
|
Y Z
|
|
|
|
test remote identify with bookmarks
|
|
|
|
$ hg id http://localhost:$HGPORT1/
|
|
cb9a9f314b8b Y/Z
|
|
$ hg id --bookmarks http://localhost:$HGPORT1/
|
|
Y Z
|
|
$ hg id -r . http://localhost:$HGPORT1/
|
|
cb9a9f314b8b Y/Z
|
|
$ hg id --bookmarks -r . http://localhost:$HGPORT1/
|
|
Y Z
|
|
|
|
test invalid lookup
|
|
|
|
$ hg id -r noNoNO http://localhost:$HGPORT1/
|
|
abort: unknown revision 'noNoNO'!
|
|
[255]
|
|
|
|
Make sure we do not obscure unknown requires file entries (issue2649)
|
|
|
|
$ echo fake >> .hg/requires
|
|
$ hg id
|
|
abort: repository requires features unknown to this Mercurial: fake!
|
|
(see https://mercurial-scm.org/wiki/MissingRequirement for more information)
|
|
[255]
|
|
|
|
$ cd ..
|
|
#if no-outer-repo
|
|
$ hg id test
|
|
abort: repository requires features unknown to this Mercurial: fake!
|
|
(see https://mercurial-scm.org/wiki/MissingRequirement for more information)
|
|
[255]
|
|
#endif
|