Mercurial > hg
annotate tests/test-schemes.t @ 21934:0cb34b3991f8 stable
largefiles: use "normallookup" on "lfdirstate" while reverting
Before this patch, largefiles gotten from revisions other than the
parent of the working directory at "hg revert" become "clean"
unexpectedly in steps below:
1. "repo.status()" is invoked (for status check before reverting)
1-1 "dirstate" entry for standinfile SF is "normal"-ed
(1-2 "lfdirstate" entry of largefile LF (for SF) is "normal"-ed)
2. "cmdutil.revert()" is invoked
2-1 standinfile SF is updated in the working directory
2-2 "dirstate" entry for SF is NOT updated
3. "lfcommands.updatelfiles()" is invoked (by "overrides.overriderevert()")
3-1 largefile LF (for SF) is updated in the working directory
3-2 "dirstate" returns "n" and valid timestamp for SF (by 1-1 and 2-2)
3-3 "lfdirstate" entry for LF is "normal"-ed
3-4 "lfdirstate" is written into ".hg/largefiles/dirstate", and
timestamp of LF is stored into "lfdirstate" file (by 3-3)
(ASSUMPTION: timestamp of LF differs from one of "lfdirstate" file)
Then, "hs status" treats LF as "clean", even though LF is updated by
"other" revision (by 3-1), because "lfilesrepo.status()" always treats
"normal"-ed files (by 3-3 and 3-4) as "clean".
When largefiles are reverted, they should be "normallookup"-ed
forcibly.
This patch uses "normallookup" on "lfdirstate" while reverting, by
passing "True" to newly added argument "normallookup".
Forcible "normallookup"-ing is not so expensive, because list of
target largefiles is explicitly specified in this case.
This patch uses "[debug] dirstate.delaywrite" feature in the test, to
ensure that timestamp of the largefile gotten from "other" revision is
stored into ".hg/largefiles/dirstate" (for ASSUMPTION at 3-4)
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Wed, 23 Jul 2014 00:10:24 +0900 |
parents | b52404a914a9 |
children | 7a9cbb315d84 |
rev | line source |
---|---|
15446
c5c9ca3719f9
tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents:
14624
diff
changeset
|
1 $ "$TESTDIR/hghave" serve || exit 80 |
9964 | 2 |
12486 | 3 $ cat <<EOF >> $HGRCPATH |
4 > [extensions] | |
5 > schemes= | |
6 > | |
7 > [schemes] | |
8 > l = http://localhost:$HGPORT/ | |
9 > parts = http://{1}:$HGPORT/ | |
10 > z = file:\$PWD/ | |
11 > EOF | |
12 $ hg init test | |
13 $ cd test | |
14 $ echo a > a | |
15 $ hg ci -Am initial | |
16 adding a | |
18910
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
17 |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
18 invalid scheme |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
19 |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
20 $ hg log -R z:z |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
21 abort: no '://' in scheme url 'z:z' |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
22 [255] |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
23 |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
24 http scheme |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
25 |
12486 | 26 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log |
27 $ cat hg.pid >> $DAEMON_PIDS | |
28 $ hg incoming l:// | |
29 comparing with l:// | |
30 searching for changes | |
31 no changes found | |
32 [1] | |
9964 | 33 |
12486 | 34 check that {1} syntax works |
9964 | 35 |
12486 | 36 $ hg incoming --debug parts://localhost |
12643
d08bb64888bc
tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12486
diff
changeset
|
37 using http://localhost:$HGPORT/ |
13603
395a84f78736
httprepo: use caps instead of between for compat check
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
12643
diff
changeset
|
38 sending capabilities command |
13815
d066d8d652c8
url: add trailing slashes to URLs with hostnames that don't have one
Brodie Rao <brodie@bitheap.org>
parents:
13742
diff
changeset
|
39 comparing with parts://localhost/ |
14164
cb98fed52495
discovery: add new set-based discovery
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
13815
diff
changeset
|
40 query 1; heads |
14624
f03c82d1f50a
setdiscovery: batch heads and known(ownheads)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
14164
diff
changeset
|
41 sending batch command |
12486 | 42 searching for changes |
14164
cb98fed52495
discovery: add new set-based discovery
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
13815
diff
changeset
|
43 all remote heads known locally |
12486 | 44 no changes found |
45 [1] | |
9964 | 46 |
12486 | 47 check that paths are expanded |
10070
9d1195b2f00d
schemes: url parts are counted from 1
Alexander Solovyov <piranha@piranha.org.ua>
parents:
9964
diff
changeset
|
48 |
12486 | 49 $ PWD=`pwd` hg incoming z:// |
50 comparing with z:// | |
51 searching for changes | |
52 no changes found | |
53 [1] | |
11154
17031fea4e95
expand paths to local repository or bundle in appropriate classes
Alexander Solovyov <piranha@piranha.org.ua>
parents:
10070
diff
changeset
|
54 |
12486 | 55 errors |
56 | |
57 $ cat errors.log | |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
58 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
59 $ cd .. |