mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 09:48:05 +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
147 lines
3.4 KiB
Perl
147 lines
3.4 KiB
Perl
$ hg init repo
|
|
$ cd repo
|
|
$ echo foo > foo
|
|
$ hg ci -qAm 'add foo'
|
|
$ echo >> foo
|
|
$ hg ci -m 'change foo'
|
|
$ hg up -qC 0
|
|
$ echo bar > bar
|
|
$ hg ci -qAm 'add bar'
|
|
|
|
$ hg log
|
|
changeset: 2:effea6de0384
|
|
tag: tip
|
|
parent: 0:bbd179dfa0a7
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add bar
|
|
|
|
changeset: 1:ed1b79f46b9a
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: change foo
|
|
|
|
changeset: 0:bbd179dfa0a7
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add foo
|
|
|
|
$ cd ..
|
|
|
|
don't show "(+1 heads)" message when pulling closed head
|
|
|
|
$ hg clone -q repo repo2
|
|
$ hg clone -q repo2 repo3
|
|
$ cd repo2
|
|
$ hg up -q 0
|
|
$ echo hello >> foo
|
|
$ hg ci -mx1
|
|
$ hg ci -mx2 --close-branch
|
|
$ cd ../repo3
|
|
$ hg heads -q --closed
|
|
2:effea6de0384
|
|
1:ed1b79f46b9a
|
|
$ hg pull
|
|
pulling from $TESTTMP/repo2
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 2 changesets with 1 changes to 1 files
|
|
new changesets 8c900227dd5d:00cfe9073916
|
|
(run 'hg update' to get a working copy)
|
|
$ hg heads -q --closed
|
|
4:00cfe9073916
|
|
2:effea6de0384
|
|
1:ed1b79f46b9a
|
|
|
|
$ cd ..
|
|
|
|
$ hg init copy
|
|
$ cd copy
|
|
|
|
Pull a missing revision:
|
|
|
|
$ hg pull -qr missing ../repo
|
|
abort: unknown revision 'missing'!
|
|
[255]
|
|
|
|
Pull multiple revisions with update:
|
|
|
|
$ hg pull -qu -r 0 -r 1 ../repo
|
|
$ hg -q parents
|
|
0:bbd179dfa0a7
|
|
$ hg rollback
|
|
repository tip rolled back to revision -1 (undo pull)
|
|
working directory now based on revision -1
|
|
|
|
$ hg pull -qr 0 ../repo
|
|
$ hg log
|
|
changeset: 0:bbd179dfa0a7
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add foo
|
|
|
|
$ hg pull -qr 1 ../repo
|
|
$ hg log
|
|
changeset: 1:ed1b79f46b9a
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: change foo
|
|
|
|
changeset: 0:bbd179dfa0a7
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add foo
|
|
|
|
|
|
This used to abort: received changelog group is empty:
|
|
|
|
$ hg pull -qr 1 ../repo
|
|
|
|
Test race condition with -r and -U (issue4707)
|
|
|
|
We pull '-U -r <name>' and the name change right after/during the changegroup emission.
|
|
We use http because http is better is our racy-est option.
|
|
|
|
|
|
$ echo babar > ../repo/jungle
|
|
$ cat <<EOF > ../repo/.hg/hgrc
|
|
> [hooks]
|
|
> outgoing.makecommit = hg ci -Am 'racy commit'; echo committed in pull-race
|
|
> EOF
|
|
$ hg serve -R ../repo -p 0 --port-file $TESTTMP/.port -d --pid-file=../repo.pid
|
|
$ HGPORT2=`cat $TESTTMP/.port`
|
|
$ cat ../repo.pid >> $DAEMON_PIDS
|
|
$ hg pull --rev default --update http://localhost:$HGPORT2/
|
|
pulling from http://localhost:$HGPORT2/ (glob)
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files (+1 heads)
|
|
new changesets effea6de0384
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ hg log -G
|
|
@ changeset: 2:effea6de0384
|
|
| tag: tip
|
|
| parent: 0:bbd179dfa0a7
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: add bar
|
|
|
|
|
| o changeset: 1:ed1b79f46b9a
|
|
|/ user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: change foo
|
|
|
|
|
o changeset: 0:bbd179dfa0a7
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: add foo
|
|
|
|
|
|
$ cd ..
|