test-subrepo-recursion.t
715 lines
| 25.0 KiB
| text/troff
|
Tads3Lexer
/ tests / test-subrepo-recursion.t
|
r12166 | Create test repository: | ||
|
r12272 | $ hg init repo | ||
$ cd repo | ||||
|
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 | ||||
|
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 | ||||
|
r35394 | adding foo/bar/z.txt | ||
|
r12270 | $ hg add -S | ||
adding x.txt | ||||
|
r35394 | adding foo/y.txt | ||
|
r12166 | |||
|
r12175 | Test recursive status without committing anything: | ||
|
r12588 | $ hg status -S | ||
|
r12175 | A .hgsub | ||
A foo/.hgsub | ||||
A foo/bar/z.txt | ||||
A foo/y.txt | ||||
A x.txt | ||||
Test recursive diff without committing anything: | ||||
|
r12588 | $ hg diff --nodates -S foo | ||
|
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: | ||||
|
r15321 | $ hg commit -m fails | ||
|
r33365 | abort: uncommitted changes in subrepository "foo" | ||
|
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 | ||||
|
r12166 | committing subrepository foo | ||
|
r35394 | committing subrepository foo/bar | ||
|
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 | ||||
|
r12588 | $ hg status -S | ||
|
r12166 | M foo/bar/z.txt | ||
M foo/y.txt | ||||
|
r12588 | $ hg diff --nodates -S | ||
|
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 | ||||
|
r12166 | |||
Status call crossing repository boundaries: | ||||
|
r12588 | $ hg status -S foo/bar/z.txt | ||
|
r12166 | M foo/bar/z.txt | ||
|
r12588 | $ hg status -S -I 'foo/?.txt' | ||
|
r12166 | M foo/y.txt | ||
|
r12588 | $ hg status -S -I '**/?.txt' | ||
|
r12166 | M foo/bar/z.txt | ||
M foo/y.txt | ||||
|
r12588 | $ hg diff --nodates -S -I '**/?.txt' | ||
|
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 | ||||
|
r12166 | |||
Status from within a subdirectory: | ||||
$ mkdir dir | ||||
$ cd dir | ||||
$ echo a1 > a.txt | ||||
|
r12588 | $ hg status -S | ||
|
r12166 | M foo/bar/z.txt | ||
M foo/y.txt | ||||
? dir/a.txt | ||||
|
r12588 | $ hg diff --nodates -S | ||
|
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 | ||||
|
r12166 | |||
Status with relative path: | ||||
|
r12588 | $ hg status -S .. | ||
|
r12166 | M ../foo/bar/z.txt | ||
M ../foo/y.txt | ||||
? a.txt | ||||
|
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 | ||||
|
r12588 | $ hg diff --nodates -S .. | ||
|
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 | ||||
|
r12166 | $ cd .. | ||
|
r12167 | Cleanup and final commit: | ||
$ rm -r dir | ||||
|
r15321 | $ hg commit --subrepos -m 2-3-2 | ||
|
r12167 | committing subrepository foo | ||
|
r35394 | committing subrepository foo/bar | ||
|
r12167 | |||
|
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 | ||||
|
r16070 | $ hg forget foo/bar/z2.txt | ||
|
r35394 | not removing foo/bar/z2.txt: file is already untracked | ||
|
r16070 | [1] | ||
$ hg status -S | ||||
? foo/bar/z2.txt | ||||
|
r15910 | $ rm foo/bar/z2.txt | ||
|
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 | ||||
|
r12166 | Status between revisions: | ||
|
r12588 | $ hg status -S | ||
$ hg status -S --rev 0:1 | ||||
|
r12166 | M .hgsubstate | ||
M foo/.hgsubstate | ||||
M foo/bar/z.txt | ||||
M foo/y.txt | ||||
|
r12588 | $ hg diff --nodates -S -I '**/?.txt' --rev 0:1 | ||
|
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 | ||||
|
r12272 | |||
|
r32005 | #if serve | ||
$ cd .. | ||||
$ hg serve -R repo --debug -S -p $HGPORT -d --pid-file=hg1.pid -E error.log -A access.log | ||||
|
r35394 | adding = $TESTTMP/repo | ||
adding foo = $TESTTMP/repo/foo | ||||
adding foo/bar = $TESTTMP/repo/foo/bar | ||||
|
r32005 | listening at http://*:$HGPORT/ (bound to *:$HGPORT) (glob) (?) | ||
|
r35394 | adding = $TESTTMP/repo (?) | ||
adding foo = $TESTTMP/repo/foo (?) | ||||
adding foo/bar = $TESTTMP/repo/foo/bar (?) | ||||
|
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 | ||||
|
r34662 | new changesets 23376cbba0d8:1326fa26d0c0 | ||
|
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 | ||||
|
r34662 | new changesets af048e97ade2:65903cebad86 | ||
|
r35394 | cloning subrepo foo/bar from http://localhost:$HGPORT/foo/bar | ||
|
r32005 | requesting all changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 3 changesets with 3 changes to 1 files | ||||
|
r34662 | new changesets 4904098473f9:31ecbdafd357 | ||
|
r32005 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
$ cat clone/foo/bar/z.txt | ||||
z1 | ||||
z2 | ||||
z3 | ||||
|
r36706 | Clone pooling from a remote URL will share the top level repo and the subrepos, | ||
even if they are referenced by remote URL. | ||||
|
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 | ||||
|
r36705 | cloning subrepo foo from http://localhost:$HGPORT/foo | ||
|
r36706 | (sharing from new pooled repository af048e97ade2e236f754f05d07013e586af0f8bf) | ||
|
r36705 | requesting all changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 4 changesets with 7 changes to 3 files | ||||
new changesets af048e97ade2:65903cebad86 | ||||
|
r36706 | searching for changes | ||
no changes found | ||||
|
r36705 | cloning subrepo foo/bar from http://localhost:$HGPORT/foo/bar | ||
|
r36706 | (sharing from new pooled repository 4904098473f96c900fec436dad267edd4da59fad) | ||
|
r36705 | requesting all changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 3 changesets with 3 changes to 1 files | ||||
new changesets 4904098473f9:31ecbdafd357 | ||||
|
r36706 | searching for changes | ||
no changes found | ||||
|
r36705 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r36704 | |||
|
r32005 | $ cat access.log | ||
|
r37574 | * "GET /?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r32005 | * "GET /?cmd=batch HTTP/1.1" 200 - * (glob) | ||
* "GET /?cmd=getbundle HTTP/1.1" 200 - * (glob) | ||||
|
r37574 | * "GET /foo?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r32005 | * "GET /foo?cmd=batch HTTP/1.1" 200 - * (glob) | ||
* "GET /foo?cmd=getbundle HTTP/1.1" 200 - * (glob) | ||||
|
r37574 | * "GET /foo/bar?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r32005 | * "GET /foo/bar?cmd=batch HTTP/1.1" 200 - * (glob) | ||
* "GET /foo/bar?cmd=getbundle HTTP/1.1" 200 - * (glob) | ||||
|
r37574 | $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r37516 | $LOCALIP - - [$LOGDATE$] "GET /?cmd=lookup HTTP/1.1" 200 - x-hgarg-1:key=0 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob) | ||
|
r37574 | $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r37516 | $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$ partial-pull (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$ partial-pull (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$ partial-pull (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$ partial-pull (glob) | ||||
|
r37574 | $LOCALIP - - [$LOGDATE$] "GET /foo?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r37516 | $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$ partial-pull (glob) | ||
|
r37574 | $LOCALIP - - [$LOGDATE$] "GET /foo?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r37516 | $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$ partial-pull (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$ partial-pull (glob) | ||||
$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$ partial-pull (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$ partial-pull (glob) | ||||
|
r37574 | $LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r37516 | $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$ partial-pull (glob) | ||
|
r37574 | $LOCALIP - - [$LOGDATE$] "GET /foo/bar?cmd=capabilities HTTP/1.1" 200 - (glob) | ||
|
r37516 | $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$ partial-pull (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$ partial-pull (glob) | ||||
$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$ partial-pull (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$ partial-pull (glob) | ||||
|
r32005 | |||
$ killdaemons.py | ||||
$ rm hg1.pid error.log access.log | ||||
$ cd repo | ||||
#endif | ||||
|
r13144 | Enable progress extension for archive tests: | ||
$ cp $HGRCPATH $HGRCPATH.no-progress | ||||
$ cat >> $HGRCPATH <<EOF | ||||
> [progress] | ||||
|
r25499 | > disable=False | ||
|
r13144 | > assume-tty = 1 | ||
> delay = 0 | ||||
|
r24612 | > # set changedelay really large so we don't see nested topics | ||
> changedelay = 30000 | ||||
|
r13149 | > format = topic bar number | ||
|
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): | ||||
|
r12323 | |||
|
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) | ||||
|
r35394 | archiving (foo/bar) [ ] 0/1\r (no-eol) (esc) | ||
archiving (foo/bar) [================================>] 1/1\r (no-eol) (esc) | ||||
|
r17743 | \r (no-eol) (esc) | ||
|
r12363 | $ find ../archive | sort | ||
|
r12323 | ../archive | ||
|
r12363 | ../archive/.hg_archival.txt | ||
../archive/.hgsub | ||||
../archive/.hgsubstate | ||||
|
r12323 | ../archive/foo | ||
|
r12363 | ../archive/foo/.hgsub | ||
../archive/foo/.hgsubstate | ||||
|
r12323 | ../archive/foo/bar | ||
../archive/foo/bar/z.txt | ||||
../archive/foo/y.txt | ||||
../archive/x.txt | ||||
|
r12339 | Test archiving to zip file (unzip output is unstable): | ||
|
r12323 | |||
|
r24953 | $ hg archive --subrepos --prefix '.' ../archive.zip | ||
|
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) | ||||
|
r35394 | archiving (foo/bar) [ ] 0/1\r (no-eol) (esc) | ||
archiving (foo/bar) [================================>] 1/1\r (no-eol) (esc) | ||||
|
r17743 | \r (no-eol) (esc) | ||
|
r24963 | |||
(unzip date formating is unstable, we do not care about it and glob it out) | ||||
|
r30844 | $ unzip -l ../archive.zip | grep -v -- ----- | egrep -v files$ | ||
|
r24953 | Archive: ../archive.zip | ||
|
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) | ||||
|
r13144 | |||
|
r15286 | Test archiving a revision that references a subrepo that is not yet | ||
cloned: | ||||
|
r24613 | #if hardlink | ||
|
r15286 | $ hg clone -U . ../empty | ||
|
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) | ||||
|
r37356 | linking [ <=> ] 9\r (no-eol) (esc) (reposimplestore !) | ||
linking [ <=> ] 10\r (no-eol) (esc) (reposimplestore !) | ||||
linking [ <=> ] 11\r (no-eol) (esc) (reposimplestore !) | ||||
linking [ <=> ] 12\r (no-eol) (esc) (reposimplestore !) | ||||
|
r37442 | linking [ <=> ] 13\r (no-eol) (esc) (reposimplestore !) | ||
|
r24440 | \r (no-eol) (esc) | ||
|
r24613 | #else | ||
$ hg clone -U . ../empty | ||||
\r (no-eol) (esc) | ||||
linking [ <=> ] 1 (no-eol) | ||||
#endif | ||||
|
r15286 | $ cd ../empty | ||
|
r24613 | #if hardlink | ||
|
r24953 | $ hg archive --subrepos -r tip --prefix './' ../archive.tar.gz | ||
|
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) | ||||
|
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) | ||||
|
r37356 | linking [ <=> ] 9\r (no-eol) (esc) (reposimplestore !) | ||
linking [ <=> ] 10\r (no-eol) (esc) (reposimplestore !) | ||||
linking [ <=> ] 11\r (no-eol) (esc) (reposimplestore !) | ||||
linking [ <=> ] 12\r (no-eol) (esc) (reposimplestore !) | ||||
linking [ <=> ] 13\r (no-eol) (esc) (reposimplestore !) | ||||
linking [ <=> ] 14\r (no-eol) (esc) (reposimplestore !) | ||||
|
r37442 | linking [ <=> ] 15\r (no-eol) (esc) (reposimplestore !) | ||
linking [ <=> ] 16\r (no-eol) (esc) (reposimplestore !) | ||||
|
r24440 | \r (no-eol) (esc) | ||
\r (no-eol) (esc) | ||||
|
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) | ||||
|
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) | ||||
|
r37356 | linking [ <=> ] 7\r (no-eol) (esc) (reposimplestore !) | ||
linking [ <=> ] 8\r (no-eol) (esc) (reposimplestore !) | ||||
|
r37442 | linking [ <=> ] 9\r (no-eol) (esc) (reposimplestore !) | ||
|
r24440 | \r (no-eol) (esc) | ||
\r (no-eol) (esc) | ||||
|
r35394 | archiving (foo/bar) [ ] 0/1\r (no-eol) (esc) | ||
archiving (foo/bar) [================================>] 1/1\r (no-eol) (esc) | ||||
|
r17743 | \r (no-eol) (esc) | ||
|
r15286 | cloning subrepo foo from $TESTTMP/repo/foo | ||
|
r35394 | cloning subrepo foo/bar from $TESTTMP/repo/foo/bar | ||
|
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. | ||||
|
r24953 | $ hg archive --subrepos -r tip --prefix './' ../archive.tar.gz | ||
|
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) | ||||
|
r35394 | cloning subrepo foo/bar from $TESTTMP/repo/foo/bar | ||
|
r24613 | #endif | ||
|
r17743 | |||
|
r24924 | Archive + subrepos uses '/' for all component separators | ||
$ tar -tzf ../archive.tar.gz | sort | ||||
|
r24953 | .hg_archival.txt | ||
.hgsub | ||||
.hgsubstate | ||||
foo/.hgsub | ||||
foo/.hgsubstate | ||||
foo/bar/z.txt | ||||
foo/y.txt | ||||
x.txt | ||||
|
r24924 | |||
|
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) | ||||
|
r40622 | Sharing a local repo with missing local subrepos (i.e. it was never updated | ||
from null) works because the default path is copied from the source repo, | ||||
whereas clone should fail. | ||||
|
r36704 | |||
$ hg --config progress.disable=True clone -U ../empty ../empty2 | ||||
$ hg --config extensions.share= --config progress.disable=True \ | ||||
> share ../empty2 ../empty_share | ||||
updating working directory | ||||
|
r40609 | sharing subrepo foo from $TESTTMP/empty/foo | ||
sharing subrepo foo/bar from $TESTTMP/empty/foo/bar | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
|
r36704 | |||
$ hg --config progress.disable=True clone ../empty2 ../empty_clone | ||||
updating to branch default | ||||
|
r40691 | cloning subrepo foo from $TESTTMP/empty2/foo | ||
|
r46518 | abort: repository $TESTTMP/empty2/foo not found | ||
|
r36704 | [255] | ||
|
r13144 | Disable progress extension and cleanup: | ||
$ mv $HGRCPATH.no-progress $HGRCPATH | ||||
|
r12323 | |||
|
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 | ||||
|
r35394 | abort: destination '$TESTTMP/almost-empty/foo' is not empty (in subrepository "foo") | ||
|
r15287 | [255] | ||
|
r12272 | Clone and test outgoing: | ||
$ cd .. | ||||
$ hg clone repo repo2 | ||||
updating to branch default | ||||
|
r14281 | cloning subrepo foo from $TESTTMP/repo/foo | ||
|
r35394 | cloning subrepo foo/bar from $TESTTMP/repo/foo/bar | ||
|
r12272 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
$ cd repo2 | ||||
$ hg outgoing -S | ||||
|
r35394 | comparing with $TESTTMP/repo | ||
|
r12272 | searching for changes | ||
no changes found | ||||
|
r12640 | comparing with $TESTTMP/repo/foo | ||
|
r12272 | searching for changes | ||
no changes found | ||||
|
r12640 | comparing with $TESTTMP/repo/foo/bar | ||
|
r12400 | searching for changes | ||
no changes found | ||||
|
r12316 | [1] | ||
|
r12272 | |||
Make nested change: | ||||
$ echo y4 >> foo/y.txt | ||||
|
r12588 | $ hg diff --nodates -S | ||
|
r12272 | diff -r 65903cebad86 foo/y.txt | ||
--- a/foo/y.txt | ||||
+++ b/foo/y.txt | ||||
@@ -1,3 +1,4 @@ | ||||
y1 | ||||
y2 | ||||
y3 | ||||
+y4 | ||||
|
r15321 | $ hg commit --subrepos -m 3-4-2 | ||
|
r12272 | committing subrepository foo | ||
$ hg outgoing -S | ||||
|
r35394 | comparing with $TESTTMP/repo | ||
|
r12272 | searching for changes | ||
changeset: 3:2655b8ecc4ee | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 3-4-2 | ||||
|
r12640 | comparing with $TESTTMP/repo/foo | ||
|
r12272 | searching for changes | ||
changeset: 4:e96193d6cb36 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 3-4-2 | ||||
|
r12640 | comparing with $TESTTMP/repo/foo/bar | ||
|
r12400 | searching for changes | ||
no changes found | ||||
|
r12274 | |||
|
r12588 | |||
|
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 | ||||
|
r35394 | comparing with $TESTTMP/repo2 | ||
|
r12274 | searching for changes | ||
changeset: 3:2655b8ecc4ee | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 3-4-2 | ||||
|
r12640 | comparing with $TESTTMP/repo2/foo | ||
|
r12274 | searching for changes | ||
changeset: 4:e96193d6cb36 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 3-4-2 | ||||
|
r12640 | comparing with $TESTTMP/repo2/foo/bar | ||
|
r12400 | searching for changes | ||
no changes found | ||||
|
r12274 | $ hg incoming -S --bundle incoming.hg | ||
|
r46334 | abort: cannot specify both --subrepos and --bundle | ||
|
r46431 | [10] | ||
|
r12274 | |||
|
r12275 | Test missing subrepo: | ||
$ rm -r foo | ||||
|
r12588 | $ hg status -S | ||
|
r12503 | warning: error "unknown revision '65903cebad86f1a84bd4f1134f62fa7dcb7a1c98'" in subrepository "foo" | ||
|
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 | ||||
|
r24464 | $ echo abc > abc.txt | ||
$ hg ci -Am "abc" | ||||
adding abc.txt | ||||
|
r13339 | $ echo "x = x" >> .hgsub | ||
$ hg add .hgsub | ||||
$ touch a x/a | ||||
$ hg add a x/a | ||||
|
r16913 | |||
|
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] | ||||
|
r16913 | $ cd .. | ||