Mercurial > hg
annotate tests/test-subrepo-relative-path.t @ 25591:f1d46075b13a
verify: check the subrepository references in .hgsubstate
While hopefully atypical, there are reasons that a subrepository revision can be
lost that aren't covered by corruption of the .hgsubstate revlog. Such things
can happen when a subrepo is amended, stripped or simply isn't pulled from
upstream because the parent repo revision wasn't updated yet. There's no way to
know if it is an error, but this will find potential problems sooner than when
some random revision is updated.
Until recently, convert made no attempt at rewriting the .hgsubstate file. The
impetuous for this is to verify the conversion of some repositories, and this is
orders of magnitude faster than a bash script from 0..tip that does an
'hg update -C $rev'. But it is equally useful to determine if everything has
been pulled down before taking a thumb drive on the go.
It feels somewhat wrong to leave this out of verifymod (mostly because the file
is already read in there, and the final summary is printed before the subrepos
are checked). But verifymod looks very low level, so importing subrepo stuff
there seems more wrong.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 16 Jun 2015 16:15:15 -0400 |
parents | c63bf97cf7c7 |
children | 2428e8ec0793 |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17539
diff
changeset
|
1 #require killdaemons |
15446
c5c9ca3719f9
tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents:
14281
diff
changeset
|
2 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
3 Preparing the subrepository 'sub' |
11109
a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
Edouard Gomez <ed.gomez@free.fr>
parents:
diff
changeset
|
4 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
5 $ hg init sub |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
6 $ echo sub > sub/sub |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
7 $ hg add -R sub |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
8 adding sub/sub (glob) |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
9 $ hg commit -R sub -m "sub import" |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
10 |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
11 Preparing the 'main' repo which depends on the subrepo 'sub' |
11109
a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
Edouard Gomez <ed.gomez@free.fr>
parents:
diff
changeset
|
12 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
13 $ hg init main |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
14 $ echo main > main/main |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
15 $ echo "sub = ../sub" > main/.hgsub |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
16 $ hg clone sub main/sub |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
17 updating to branch default |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
18 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
19 $ hg add -R main |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
20 adding main/.hgsub (glob) |
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
21 adding main/main (glob) |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
22 $ hg commit -R main -m "main import" |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
23 |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
24 Cleaning both repositories, just as a clone -U |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
25 |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
26 $ hg up -C -R sub null |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
27 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
28 $ hg up -C -R main null |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
29 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
30 $ rm -rf main/sub |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
31 |
17015
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
16351
diff
changeset
|
32 hide outer repo |
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
16351
diff
changeset
|
33 $ hg init |
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
16351
diff
changeset
|
34 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
35 Serving them both using hgweb |
11109
a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
Edouard Gomez <ed.gomez@free.fr>
parents:
diff
changeset
|
36 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
37 $ printf '[paths]\n/main = main\nsub = sub\n' > webdir.conf |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
38 $ hg serve --webdir-conf webdir.conf -a localhost -p $HGPORT \ |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
39 > -A /dev/null -E /dev/null --pid-file hg.pid -d |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
40 $ cat hg.pid >> $DAEMON_PIDS |
11109
a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
Edouard Gomez <ed.gomez@free.fr>
parents:
diff
changeset
|
41 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
42 Clone main from hgweb |
11109
a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
Edouard Gomez <ed.gomez@free.fr>
parents:
diff
changeset
|
43 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
44 $ hg clone "http://localhost:$HGPORT/main" cloned |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
45 requesting all changes |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
46 adding changesets |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
47 adding manifests |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
48 adding file changes |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
49 added 1 changesets with 3 changes to 3 files |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
50 updating to branch default |
14281
ccb7240acf32
subrepo: create subrepos using clone instead of pull
Martin Geisler <mg@aragost.com>
parents:
14187
diff
changeset
|
51 cloning subrepo sub from http://localhost:$HGPORT/sub |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
52 requesting all changes |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
53 adding changesets |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
54 adding manifests |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
55 adding file changes |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
56 added 1 changesets with 1 changes to 1 files |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
57 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
11109
a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
Edouard Gomez <ed.gomez@free.fr>
parents:
diff
changeset
|
58 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
59 Checking cloned repo ids |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
60 |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
61 $ hg id -R cloned |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
62 fdfeeb3e979e tip |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
63 $ hg id -R cloned/sub |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
64 863c1745b441 tip |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
65 |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
66 subrepo debug for 'main' clone |
11109
a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
Edouard Gomez <ed.gomez@free.fr>
parents:
diff
changeset
|
67 |
11915
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
68 $ hg debugsub -R cloned |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
69 path sub |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
70 source ../sub |
d521e72314f9
tests: unify test-subrepo-relative-path
Martin Geisler <mg@lazybytes.net>
parents:
11109
diff
changeset
|
71 revision 863c1745b441bd97a8c4a096e87793073f4fb215 |
11109
a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
Edouard Gomez <ed.gomez@free.fr>
parents:
diff
changeset
|
72 |
25474
8c14f87bd0ae
tests: drop DAEMON_PIDS from killdaemons calls
Matt Mackall <mpm@selenic.com>
parents:
25472
diff
changeset
|
73 $ killdaemons.py |
14187
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
74 |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
75 subrepo paths with ssh urls |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
76 |
25495
c63bf97cf7c7
tests: restore 'python' and '$TESTDIR/' for dummyssh invocation
Matt Harbison <matt_harbison@yahoo.com>
parents:
25476
diff
changeset
|
77 $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/cloned sshclone |
14187
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
78 requesting all changes |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
79 adding changesets |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
80 adding manifests |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
81 adding file changes |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
82 added 1 changesets with 3 changes to 3 files |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
83 updating to branch default |
14281
ccb7240acf32
subrepo: create subrepos using clone instead of pull
Martin Geisler <mg@aragost.com>
parents:
14187
diff
changeset
|
84 cloning subrepo sub from ssh://user@dummy/sub |
14187
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
85 requesting all changes |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
86 adding changesets |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
87 adding manifests |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
88 adding file changes |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
89 added 1 changesets with 1 changes to 1 files |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
90 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
91 |
25495
c63bf97cf7c7
tests: restore 'python' and '$TESTDIR/' for dummyssh invocation
Matt Harbison <matt_harbison@yahoo.com>
parents:
25476
diff
changeset
|
92 $ hg -R sshclone push -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/`pwd`/cloned |
14187
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
93 pushing to ssh://user@dummy/$TESTTMP/cloned |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
94 pushing subrepo sub to ssh://user@dummy/$TESTTMP/sub |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
95 searching for changes |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
96 no changes found |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
97 searching for changes |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
98 no changes found |
16023
90f8b8dd0326
push: return 1 if no changes found (issue3228)
Matt Mackall <mpm@selenic.com>
parents:
15622
diff
changeset
|
99 [1] |
14187
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
100 |
9bbaafddfa90
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com>
parents:
13138
diff
changeset
|
101 $ cat dummylog |
15622
86fc364ca5f8
sshrepo: don't quote obviously safe strings (issue2983)
Mads Kiilerich <mads@kiilerich.com>
parents:
15581
diff
changeset
|
102 Got arguments 1:user@dummy 2:hg -R cloned serve --stdio |
86fc364ca5f8
sshrepo: don't quote obviously safe strings (issue2983)
Mads Kiilerich <mads@kiilerich.com>
parents:
15581
diff
changeset
|
103 Got arguments 1:user@dummy 2:hg -R sub serve --stdio |
86fc364ca5f8
sshrepo: don't quote obviously safe strings (issue2983)
Mads Kiilerich <mads@kiilerich.com>
parents:
15581
diff
changeset
|
104 Got arguments 1:user@dummy 2:hg -R $TESTTMP/cloned serve --stdio |
86fc364ca5f8
sshrepo: don't quote obviously safe strings (issue2983)
Mads Kiilerich <mads@kiilerich.com>
parents:
15581
diff
changeset
|
105 Got arguments 1:user@dummy 2:hg -R $TESTTMP/sub serve --stdio |