##// END OF EJS Templates
hgweb: support constructing URLs from an alternate base URL...
hgweb: support constructing URLs from an alternate base URL The web.baseurl config option allows server operators to define a custom URL for hosted content. The way it works today is that hgwebdir parses this config option into URL components then updates the appropriate WSGI environment variables so the request "lies" about its details. For example, SERVER_NAME is updated to reflect the alternate base URL's hostname. The WSGI environment should not be modified because WSGI applications may want to know the original request details (for debugging, etc). This commit teaches our request parser about the existence of an alternate base URL. If defined, the advertised URL and other self-reflected paths will take the alternate base URL into account. The hgweb WSGI application didn't use web.baseurl. But hgwebdir did. We update hgwebdir to alter the environment parsing accordingly. The old code around environment manipulation has been removed. With this change, parserequestfromenv() has grown to a bit unwieldy. Now that practically everyone is using it, it is obvious that there is some unused features that can be trimmed. So look for this in follow-up commits. Differential Revision: https://phab.mercurial-scm.org/D2822

File last commit:

r36706:fb278041 stable
r36916:219b2335 default
Show More
test-subrepo-recursion.t
696 lines | 23.1 KiB | text/troff | Tads3Lexer
/ tests / test-subrepo-recursion.t
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 Create test repository:
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 $ hg init repo
$ cd repo
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 $ echo x1 > x.txt
$ hg init foo
$ cd foo
$ echo y1 > y.txt
$ hg init bar
$ cd bar
$ echo z1 > z.txt
$ cd ..
$ echo 'bar = bar' > .hgsub
$ cd ..
$ echo 'foo = foo' > .hgsub
Martin Geisler
add: recurse into subrepositories with --subrepos/-S flag
r12270
Add files --- .hgsub files must go first to trigger subrepos:
$ hg add -S .hgsub
$ hg add -S foo/.hgsub
$ hg add -S foo/bar
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding foo/bar/z.txt
Martin Geisler
add: recurse into subrepositories with --subrepos/-S flag
r12270 $ hg add -S
adding x.txt
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding foo/y.txt
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
Martin Geisler
subrepos: handle modified but uncommitted .hgsub
r12175 Test recursive status without committing anything:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
Martin Geisler
subrepos: handle modified but uncommitted .hgsub
r12175 A .hgsub
A foo/.hgsub
A foo/bar/z.txt
A foo/y.txt
A x.txt
Test recursive diff without committing anything:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S foo
Martin Geisler
subrepos: handle modified but uncommitted .hgsub
r12175 diff -r 000000000000 foo/.hgsub
--- /dev/null
+++ b/foo/.hgsub
@@ -0,0 +1,1 @@
+bar = bar
diff -r 000000000000 foo/y.txt
--- /dev/null
+++ b/foo/y.txt
@@ -0,0 +1,1 @@
+y1
diff -r 000000000000 foo/bar/z.txt
--- /dev/null
+++ b/foo/bar/z.txt
@@ -0,0 +1,1 @@
+z1
Commits:
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 $ hg commit -m fails
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: uncommitted changes in subrepository "foo"
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 (use --subrepos for recursive commit)
[255]
The --subrepos flag overwrite the config setting:
$ hg commit -m 0-0-0 --config ui.commitsubrepos=No --subrepos
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 committing subrepository foo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 committing subrepository foo/bar
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
$ cd foo
$ echo y2 >> y.txt
$ hg commit -m 0-1-0
$ cd bar
$ echo z2 >> z.txt
$ hg commit -m 0-1-1
$ cd ..
$ hg commit -m 0-2-1
$ cd ..
$ hg commit -m 1-2-1
Change working directory:
$ echo y3 >> foo/y.txt
$ echo z3 >> foo/bar/z.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/bar/z.txt
M foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,2 +1,3 @@
y1
y2
+y3
diff -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,2 +1,3 @@
z1
z2
+z3
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
Status call crossing repository boundaries:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S foo/bar/z.txt
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/bar/z.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S -I 'foo/?.txt'
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S -I '**/?.txt'
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/bar/z.txt
M foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S -I '**/?.txt'
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,2 +1,3 @@
y1
y2
+y3
diff -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,2 +1,3 @@
z1
z2
+z3
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
Status from within a subdirectory:
$ mkdir dir
$ cd dir
$ echo a1 > a.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/bar/z.txt
M foo/y.txt
? dir/a.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,2 +1,3 @@
y1
y2
+y3
diff -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,2 +1,3 @@
z1
z2
+z3
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
Status with relative path:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S ..
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M ../foo/bar/z.txt
M ../foo/y.txt
? a.txt
Matt Harbison
largefiles: revert to lfilesrepo.status() being an unfiltered method...
r23958
XXX: filtering lfilesrepo.status() in 3.3-rc causes these files to be listed as
added instead of modified.
$ hg status -S .. --config extensions.largefiles=
M ../foo/bar/z.txt
M ../foo/y.txt
? a.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S ..
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,2 +1,3 @@
y1
y2
+y3
diff -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,2 +1,3 @@
z1
z2
+z3
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 $ cd ..
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 Cleanup and final commit:
$ rm -r dir
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 $ hg commit --subrepos -m 2-3-2
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 committing subrepository foo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 committing subrepository foo/bar
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167
David M. Carr
tests: add subrepo recursion tests for add/forget with explicit paths...
r15910 Test explicit path commands within subrepos: add/forget
$ echo z1 > foo/bar/z2.txt
$ hg status -S
? foo/bar/z2.txt
$ hg add foo/bar/z2.txt
$ hg status -S
A foo/bar/z2.txt
$ hg forget foo/bar/z2.txt
$ hg status -S
? foo/bar/z2.txt
FUJIWARA Katsunori
forget: show warning messages for forgetting in subrepo correctly...
r16070 $ hg forget foo/bar/z2.txt
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 not removing foo/bar/z2.txt: file is already untracked
FUJIWARA Katsunori
forget: show warning messages for forgetting in subrepo correctly...
r16070 [1]
$ hg status -S
? foo/bar/z2.txt
David M. Carr
tests: add subrepo recursion tests for add/forget with explicit paths...
r15910 $ rm foo/bar/z2.txt
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 Log with the relationships between repo and its subrepo:
$ hg log --template '{rev}:{node|short} {desc}\n'
2:1326fa26d0c0 2-3-2
1:4b3c9ff4f66b 1-2-1
0:23376cbba0d8 0-0-0
$ hg -R foo log --template '{rev}:{node|short} {desc}\n'
3:65903cebad86 2-3-2
2:d254738c5f5e 0-2-1
1:8629ce7dcc39 0-1-0
0:af048e97ade2 0-0-0
$ hg -R foo/bar log --template '{rev}:{node|short} {desc}\n'
2:31ecbdafd357 2-3-2
1:9647f22de499 0-1-1
0:4904098473f9 0-0-0
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 Status between revisions:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
$ hg status -S --rev 0:1
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M .hgsubstate
M foo/.hgsubstate
M foo/bar/z.txt
M foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S -I '**/?.txt' --rev 0:1
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r af048e97ade2 -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,1 +1,2 @@
y1
+y2
diff -r 4904098473f9 -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,1 +1,2 @@
z1
+z2
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272
Matt Harbison
serve: add support for Mercurial subrepositories...
r32005 #if serve
$ cd ..
$ hg serve -R repo --debug -S -p $HGPORT -d --pid-file=hg1.pid -E error.log -A access.log
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding = $TESTTMP/repo
adding foo = $TESTTMP/repo/foo
adding foo/bar = $TESTTMP/repo/foo/bar
Matt Harbison
serve: add support for Mercurial subrepositories...
r32005 listening at http://*:$HGPORT/ (bound to *:$HGPORT) (glob) (?)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding = $TESTTMP/repo (?)
adding foo = $TESTTMP/repo/foo (?)
adding foo/bar = $TESTTMP/repo/foo/bar (?)
Matt Harbison
serve: add support for Mercurial subrepositories...
r32005 $ cat hg1.pid >> $DAEMON_PIDS
$ hg clone http://localhost:$HGPORT clone --config progress.disable=True
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 5 changes to 3 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 23376cbba0d8:1326fa26d0c0
Matt Harbison
serve: add support for Mercurial subrepositories...
r32005 updating to branch default
cloning subrepo foo from http://localhost:$HGPORT/foo
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 7 changes to 3 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets af048e97ade2:65903cebad86
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 cloning subrepo foo/bar from http://localhost:$HGPORT/foo/bar
Matt Harbison
serve: add support for Mercurial subrepositories...
r32005 requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 4904098473f9:31ecbdafd357
Matt Harbison
serve: add support for Mercurial subrepositories...
r32005 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat clone/foo/bar/z.txt
z1
z2
z3
Matt Harbison
subrepo: activate clone pooling to enable sharing with remote URLs...
r36706 Clone pooling from a remote URL will share the top level repo and the subrepos,
even if they are referenced by remote URL.
Matt Harbison
test-subrepo: demonstrate problems with subrepo sharing and absolute paths...
r36704
$ hg --config extensions.share= --config share.pool=$TESTTMP/pool \
> clone http://localhost:$HGPORT shared
(sharing from new pooled repository 23376cbba0d87c15906bb3652584927c140907bf)
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 5 changes to 3 files
new changesets 23376cbba0d8:1326fa26d0c0
searching for changes
no changes found
updating working directory
Matt Harbison
subrepo: don't attempt to share remote sources (issue5793)...
r36705 cloning subrepo foo from http://localhost:$HGPORT/foo
Matt Harbison
subrepo: activate clone pooling to enable sharing with remote URLs...
r36706 (sharing from new pooled repository af048e97ade2e236f754f05d07013e586af0f8bf)
Matt Harbison
subrepo: don't attempt to share remote sources (issue5793)...
r36705 requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 7 changes to 3 files
new changesets af048e97ade2:65903cebad86
Matt Harbison
subrepo: activate clone pooling to enable sharing with remote URLs...
r36706 searching for changes
no changes found
Matt Harbison
subrepo: don't attempt to share remote sources (issue5793)...
r36705 cloning subrepo foo/bar from http://localhost:$HGPORT/foo/bar
Matt Harbison
subrepo: activate clone pooling to enable sharing with remote URLs...
r36706 (sharing from new pooled repository 4904098473f96c900fec436dad267edd4da59fad)
Matt Harbison
subrepo: don't attempt to share remote sources (issue5793)...
r36705 requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 1 files
new changesets 4904098473f9:31ecbdafd357
Matt Harbison
subrepo: activate clone pooling to enable sharing with remote URLs...
r36706 searching for changes
no changes found
Matt Harbison
subrepo: don't attempt to share remote sources (issue5793)...
r36705 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Harbison
test-subrepo: demonstrate problems with subrepo sharing and absolute paths...
r36704
Matt Harbison
serve: add support for Mercurial subrepositories...
r32005 $ cat access.log
* "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
* "GET /?cmd=batch HTTP/1.1" 200 - * (glob)
* "GET /?cmd=getbundle HTTP/1.1" 200 - * (glob)
* "GET /foo?cmd=capabilities HTTP/1.1" 200 - (glob)
* "GET /foo?cmd=batch HTTP/1.1" 200 - * (glob)
* "GET /foo?cmd=getbundle HTTP/1.1" 200 - * (glob)
* "GET /foo/bar?cmd=capabilities HTTP/1.1" 200 - (glob)
* "GET /foo/bar?cmd=batch HTTP/1.1" 200 - * (glob)
* "GET /foo/bar?cmd=getbundle HTTP/1.1" 200 - * (glob)
Matt Harbison
test-subrepo: demonstrate problems with subrepo sharing and absolute paths...
r36704 $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
$LOCALIP - - [$LOGDATE$] "GET /?cmd=lookup HTTP/1.1" 200 - x-hgarg-1:key=0 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
$LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=1326fa26d0c00d2146c63b56bb6a45149d7325ac&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D1326fa26d0c00d2146c63b56bb6a45149d7325ac x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&$USUAL_BUNDLE_CAPS$&cg=0&common=1326fa26d0c00d2146c63b56bb6a45149d7325ac&heads=1326fa26d0c00d2146c63b56bb6a45149d7325ac&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo?cmd=capabilities HTTP/1.1" 200 - (glob)
Matt Harbison
subrepo: activate clone pooling to enable sharing with remote URLs...
r36706 $LOCALIP - - [$LOGDATE$] "GET /foo?cmd=lookup HTTP/1.1" 200 - x-hgarg-1:key=0 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo?cmd=capabilities HTTP/1.1" 200 - (glob)
Matt Harbison
subrepo: don't attempt to share remote sources (issue5793)...
r36705 $LOCALIP - - [$LOGDATE$] "GET /foo?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=65903cebad86f1a84bd4f1134f62fa7dcb7a1c98&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
Matt Harbison
subrepo: activate clone pooling to enable sharing with remote URLs...
r36706 $LOCALIP - - [$LOGDATE$] "GET /foo?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D65903cebad86f1a84bd4f1134f62fa7dcb7a1c98 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&$USUAL_BUNDLE_CAPS$&cg=0&common=65903cebad86f1a84bd4f1134f62fa7dcb7a1c98&heads=65903cebad86f1a84bd4f1134f62fa7dcb7a1c98&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=capabilities HTTP/1.1" 200 - (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=lookup HTTP/1.1" 200 - x-hgarg-1:key=0 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
Matt Harbison
subrepo: don't attempt to share remote sources (issue5793)...
r36705 $LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=capabilities HTTP/1.1" 200 - (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=31ecbdafd357f54b281c9bd1d681bb90de219e22&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
Matt Harbison
subrepo: activate clone pooling to enable sharing with remote URLs...
r36706 $LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D31ecbdafd357f54b281c9bd1d681bb90de219e22 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
$LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&$USUAL_BUNDLE_CAPS$&cg=0&common=31ecbdafd357f54b281c9bd1d681bb90de219e22&heads=31ecbdafd357f54b281c9bd1d681bb90de219e22&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
Matt Harbison
serve: add support for Mercurial subrepositories...
r32005
$ killdaemons.py
$ rm hg1.pid error.log access.log
$ cd repo
#endif
Martin Geisler
subrepo: add progress bar support to archive
r13144 Enable progress extension for archive tests:
$ cp $HGRCPATH $HGRCPATH.no-progress
$ cat >> $HGRCPATH <<EOF
> [progress]
Pierre-Yves David
progress: move all logic altering the ui object logic in mercurial.ui...
r25499 > disable=False
Martin Geisler
subrepo: add progress bar support to archive
r13144 > assume-tty = 1
> delay = 0
Augie Fackler
test-subrepo-recursion: set progress.changedelay really high...
r24612 > # set changedelay really large so we don't see nested topics
> changedelay = 30000
Augie Fackler
progress using tests: disable time estimates to avoid flakiness
r13149 > format = topic bar number
Martin Geisler
subrepo: add progress bar support to archive
r13144 > refresh = 0
> width = 60
> EOF
Test archiving to a directory tree (the doubled lines in the output
only show up in the test output, not in real usage):
Martin Geisler
subrepo: add support for 'hg archive'
r12323
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg archive --subrepos ../archive
\r (no-eol) (esc)
archiving [ ] 0/3\r (no-eol) (esc)
archiving [=============> ] 1/3\r (no-eol) (esc)
archiving [===========================> ] 2/3\r (no-eol) (esc)
archiving [==========================================>] 3/3\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
archiving (foo) [ ] 0/3\r (no-eol) (esc)
archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 archiving (foo/bar) [ ] 0/1\r (no-eol) (esc)
archiving (foo/bar) [================================>] 1/1\r (no-eol) (esc)
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 \r (no-eol) (esc)
Patrick Mezard
test-subrepo-recursion: sort archive output for portability
r12363 $ find ../archive | sort
Martin Geisler
subrepo: add support for 'hg archive'
r12323 ../archive
Patrick Mezard
test-subrepo-recursion: sort archive output for portability
r12363 ../archive/.hg_archival.txt
../archive/.hgsub
../archive/.hgsubstate
Martin Geisler
subrepo: add support for 'hg archive'
r12323 ../archive/foo
Patrick Mezard
test-subrepo-recursion: sort archive output for portability
r12363 ../archive/foo/.hgsub
../archive/foo/.hgsubstate
Martin Geisler
subrepo: add support for 'hg archive'
r12323 ../archive/foo/bar
../archive/foo/bar/z.txt
../archive/foo/y.txt
../archive/x.txt
Matt Mackall
tests: fixup tests using unzip -l
r12339 Test archiving to zip file (unzip output is unstable):
Martin Geisler
subrepo: add support for 'hg archive'
r12323
Matt Harbison
archive: drop the leading '.' path component from the prefix (issue4634)...
r24953 $ hg archive --subrepos --prefix '.' ../archive.zip
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 \r (no-eol) (esc)
archiving [ ] 0/3\r (no-eol) (esc)
archiving [=============> ] 1/3\r (no-eol) (esc)
archiving [===========================> ] 2/3\r (no-eol) (esc)
archiving [==========================================>] 3/3\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
archiving (foo) [ ] 0/3\r (no-eol) (esc)
archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 archiving (foo/bar) [ ] 0/1\r (no-eol) (esc)
archiving (foo/bar) [================================>] 1/1\r (no-eol) (esc)
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 \r (no-eol) (esc)
Pierre-Yves David
test-subrepo-recursion: glob out all the date listed by unzip -l...
r24963
(unzip date formating is unstable, we do not care about it and glob it out)
Augie Fackler
tests: work around FreeBSD's unzip having slightly different output...
r30844 $ unzip -l ../archive.zip | grep -v -- ----- | egrep -v files$
Matt Harbison
archive: drop the leading '.' path component from the prefix (issue4634)...
r24953 Archive: ../archive.zip
Matt Harbison
test-subrepo-recursion: more aggressively regex 'unzip -l' output for 10.10...
r25610 Length [ ]* Date [ ]* Time [ ]* Name (re)
172 [0-9:\- ]* .hg_archival.txt (re)
10 [0-9:\- ]* .hgsub (re)
45 [0-9:\- ]* .hgsubstate (re)
3 [0-9:\- ]* x.txt (re)
10 [0-9:\- ]* foo/.hgsub (re)
45 [0-9:\- ]* foo/.hgsubstate (re)
9 [0-9:\- ]* foo/y.txt (re)
9 [0-9:\- ]* foo/bar/z.txt (re)
Martin Geisler
subrepo: add progress bar support to archive
r13144
Martin Geisler
subrepo: pull revisions on demand when archiving hg subrepos...
r15286 Test archiving a revision that references a subrepo that is not yet
cloned:
Augie Fackler
test-subrepo-recursion: fix output on non-hardlink systems...
r24613 #if hardlink
Martin Geisler
subrepo: pull revisions on demand when archiving hg subrepos...
r15286 $ hg clone -U . ../empty
Augie Fackler
clone: add progress support to hardlink clones (issue3059)
r24440 \r (no-eol) (esc)
linking [ <=> ] 1\r (no-eol) (esc)
linking [ <=> ] 2\r (no-eol) (esc)
linking [ <=> ] 3\r (no-eol) (esc)
linking [ <=> ] 4\r (no-eol) (esc)
linking [ <=> ] 5\r (no-eol) (esc)
linking [ <=> ] 6\r (no-eol) (esc)
linking [ <=> ] 7\r (no-eol) (esc)
linking [ <=> ] 8\r (no-eol) (esc)
\r (no-eol) (esc)
Augie Fackler
test-subrepo-recursion: fix output on non-hardlink systems...
r24613 #else
$ hg clone -U . ../empty
\r (no-eol) (esc)
linking [ <=> ] 1 (no-eol)
#endif
Martin Geisler
subrepo: pull revisions on demand when archiving hg subrepos...
r15286 $ cd ../empty
Augie Fackler
test-subrepo-recursion: fix output on non-hardlink systems...
r24613 #if hardlink
Matt Harbison
archive: drop the leading '.' path component from the prefix (issue4634)...
r24953 $ hg archive --subrepos -r tip --prefix './' ../archive.tar.gz
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 \r (no-eol) (esc)
archiving [ ] 0/3\r (no-eol) (esc)
archiving [=============> ] 1/3\r (no-eol) (esc)
archiving [===========================> ] 2/3\r (no-eol) (esc)
archiving [==========================================>] 3/3\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
Augie Fackler
clone: add progress support to hardlink clones (issue3059)
r24440 linking [ <=> ] 1\r (no-eol) (esc)
linking [ <=> ] 2\r (no-eol) (esc)
linking [ <=> ] 3\r (no-eol) (esc)
linking [ <=> ] 4\r (no-eol) (esc)
linking [ <=> ] 5\r (no-eol) (esc)
linking [ <=> ] 6\r (no-eol) (esc)
linking [ <=> ] 7\r (no-eol) (esc)
linking [ <=> ] 8\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 archiving (foo) [ ] 0/3\r (no-eol) (esc)
archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
Augie Fackler
clone: add progress support to hardlink clones (issue3059)
r24440 linking [ <=> ] 1\r (no-eol) (esc)
linking [ <=> ] 2\r (no-eol) (esc)
linking [ <=> ] 3\r (no-eol) (esc)
linking [ <=> ] 4\r (no-eol) (esc)
linking [ <=> ] 5\r (no-eol) (esc)
linking [ <=> ] 6\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 archiving (foo/bar) [ ] 0/1\r (no-eol) (esc)
archiving (foo/bar) [================================>] 1/1\r (no-eol) (esc)
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 \r (no-eol) (esc)
Martin Geisler
subrepo: pull revisions on demand when archiving hg subrepos...
r15286 cloning subrepo foo from $TESTTMP/repo/foo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 cloning subrepo foo/bar from $TESTTMP/repo/foo/bar
Augie Fackler
test-subrepo-recursion: fix output on non-hardlink systems...
r24613 #else
Note there's a slight output glitch on non-hardlink systems: the last
"linking" progress topic never gets closed, leading to slight output corruption on that platform.
Matt Harbison
archive: drop the leading '.' path component from the prefix (issue4634)...
r24953 $ hg archive --subrepos -r tip --prefix './' ../archive.tar.gz
Augie Fackler
test-subrepo-recursion: fix output on non-hardlink systems...
r24613 \r (no-eol) (esc)
archiving [ ] 0/3\r (no-eol) (esc)
archiving [=============> ] 1/3\r (no-eol) (esc)
archiving [===========================> ] 2/3\r (no-eol) (esc)
archiving [==========================================>] 3/3\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
linking [ <=> ] 1\r (no-eol) (esc)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 cloning subrepo foo/bar from $TESTTMP/repo/foo/bar
Augie Fackler
test-subrepo-recursion: fix output on non-hardlink systems...
r24613 #endif
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743
Matt Harbison
archive: always use portable path component separators with subrepos...
r24924 Archive + subrepos uses '/' for all component separators
$ tar -tzf ../archive.tar.gz | sort
Matt Harbison
archive: drop the leading '.' path component from the prefix (issue4634)...
r24953 .hg_archival.txt
.hgsub
.hgsubstate
foo/.hgsub
foo/.hgsubstate
foo/bar/z.txt
foo/y.txt
x.txt
Matt Harbison
archive: always use portable path component separators with subrepos...
r24924
Martin Geisler
subrepo: pull revisions on demand when archiving hg subrepos...
r15286 The newly cloned subrepos contain no working copy:
$ hg -R foo summary
parent: -1:000000000000 (no revision checked out)
branch: default
commit: (clean)
update: 4 new changesets (update)
Matt Harbison
test-subrepo: demonstrate problems with subrepo sharing and absolute paths...
r36704 Sharing a local repo without the locally referenced subrepo (i.e. it was never
updated from null), fails the same as a clone operation.
$ hg --config progress.disable=True clone -U ../empty ../empty2
$ hg --config extensions.share= --config progress.disable=True \
> share ../empty2 ../empty_share
updating working directory
abort: repository $TESTTMP/empty2/foo not found!
[255]
$ hg --config progress.disable=True clone ../empty2 ../empty_clone
updating to branch default
abort: repository $TESTTMP/empty2/foo not found!
[255]
Martin Geisler
subrepo: add progress bar support to archive
r13144 Disable progress extension and cleanup:
$ mv $HGRCPATH.no-progress $HGRCPATH
Martin Geisler
subrepo: add support for 'hg archive'
r12323
Martin Geisler
subrepo: abort in hgsubrepo._get if the destination is obstructed...
r15287 Test archiving when there is a directory in the way for a subrepo
created by archive:
$ hg clone -U . ../almost-empty
$ cd ../almost-empty
$ mkdir foo
$ echo f > foo/f
$ hg archive --subrepos -r tip archive
cloning subrepo foo from $TESTTMP/empty/foo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: destination '$TESTTMP/almost-empty/foo' is not empty (in subrepository "foo")
Martin Geisler
subrepo: abort in hgsubrepo._get if the destination is obstructed...
r15287 [255]
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 Clone and test outgoing:
$ cd ..
$ hg clone repo repo2
updating to branch default
Martin Geisler
subrepo: create subrepos using clone instead of pull...
r14281 cloning subrepo foo from $TESTTMP/repo/foo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 cloning subrepo foo/bar from $TESTTMP/repo/foo/bar
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd repo2
$ hg outgoing -S
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 comparing with $TESTTMP/repo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
no changes found
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo/foo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
no changes found
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo/foo/bar
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 searching for changes
no changes found
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272
Make nested change:
$ echo y4 >> foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 diff -r 65903cebad86 foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,3 +1,4 @@
y1
y2
y3
+y4
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 $ hg commit --subrepos -m 3-4-2
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 committing subrepository foo
$ hg outgoing -S
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 comparing with $TESTTMP/repo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
changeset: 3:2655b8ecc4ee
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo/foo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
changeset: 4:e96193d6cb36
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo/foo/bar
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 searching for changes
no changes found
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274 Switch to original repo and setup default path:
$ cd ../repo
$ echo '[paths]' >> .hg/hgrc
$ echo 'default = ../repo2' >> .hg/hgrc
Test incoming:
$ hg incoming -S
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 comparing with $TESTTMP/repo2
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274 searching for changes
changeset: 3:2655b8ecc4ee
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo2/foo
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274 searching for changes
changeset: 4:e96193d6cb36
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo2/foo/bar
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 searching for changes
no changes found
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274 $ hg incoming -S --bundle incoming.hg
abort: cannot combine --bundle and --subrepos
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274
Martin Geisler
test-subrepo-recursion: test missing subrepo
r12275 Test missing subrepo:
$ rm -r foo
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
Wagner Bruna
subrepo: improve lookup error messages
r12503 warning: error "unknown revision '65903cebad86f1a84bd4f1134f62fa7dcb7a1c98'" in subrepository "foo"
trbs
subrepo: fix pruning of subrepo filenames in dirstate (issue2619)
r13339
Issue2619: IndexError: list index out of range on hg add with subrepos
The subrepo must sorts after the explicit filename.
$ cd ..
$ hg init test
$ cd test
$ hg init x
Matt Harbison
revert: evaluate subrepos to revert against the working directory...
r24464 $ echo abc > abc.txt
$ hg ci -Am "abc"
adding abc.txt
trbs
subrepo: fix pruning of subrepo filenames in dirstate (issue2619)
r13339 $ echo "x = x" >> .hgsub
$ hg add .hgsub
$ touch a x/a
$ hg add a x/a
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Matt Harbison
revert: evaluate subrepos to revert against the working directory...
r24464 $ hg ci -Sm "added x"
committing subrepository x
$ echo abc > x/a
$ hg revert --rev '.^' "set:subrepo('glob:x*')"
abort: subrepository 'x' does not exist in 25ac2c9b3180!
[255]
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..