Mercurial > hg
annotate tests/test-symlink-placeholder.t @ 52075:ff4562ed9ed7
localrepo: drop the CamelCase name for `localrepo.localcommandexecutor`
See 61557734c0ae for the reasoning.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 23 Oct 2024 16:51:18 -0400 |
parents | 8b7123c8947b |
children |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
19650
diff
changeset
|
1 #require symlink |
15441
e0348815e806
tests: use 'hghave symlink' for tests using symlinks
Mads Kiilerich <mads@kiilerich.com>
parents:
15348
diff
changeset
|
2 |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 Create extension that can disable symlink support: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
4 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
5 $ cat > nolink.py <<EOF |
52060
8b7123c8947b
update: add a Rust fast-path when updating from null (and clean)
Raphaël Gomès <rgomes@octobus.net>
parents:
38080
diff
changeset
|
6 > from mercurial import extensions, merge, util |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
7 > def setflags(orig, f, l, x): |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
8 > pass |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
9 > def checklink(orig, path): |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
10 > return False |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
11 > def extsetup(ui): |
52060
8b7123c8947b
update: add a Rust fast-path when updating from null (and clean)
Raphaël Gomès <rgomes@octobus.net>
parents:
38080
diff
changeset
|
12 > merge.MAYBE_USE_RUST_UPDATE = False |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
13 > extensions.wrapfunction(util, 'setflags', setflags) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
14 > extensions.wrapfunction(util, 'checklink', checklink) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
15 > EOF |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
16 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
17 $ hg init unix-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
18 $ cd unix-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
19 $ echo foo > a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
20 $ ln -s a b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
21 $ hg ci -Am0 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
22 adding a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
23 adding b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
24 $ cd .. |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
25 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
26 Simulate a checkout shared on NFS/Samba: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
27 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
28 $ hg clone -q unix-repo shared |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
29 $ cd shared |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
30 $ rm b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
31 $ echo foo > b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
32 $ hg --config extensions.n=$TESTTMP/nolink.py status --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
33 ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
34 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
35 Make a clone using placeholders: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
36 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
37 $ hg --config extensions.n=$TESTTMP/nolink.py clone . ../win-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
38 updating to branch default |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
39 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
40 $ cd ../win-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
41 $ cat b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
42 a (no-eol) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
43 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
44 |
19650
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
45 Empty placeholder: |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
46 |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
47 $ rm b |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
48 $ touch b |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
49 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
50 ignoring suspect symlink placeholder "b" |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
51 |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
52 Write binary data to the placeholder: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
53 |
38080
0a10f142299d
py3: suppress the output from .write() calls in few tests
Pulkit Goyal <7895pulkit@gmail.com>
parents:
22046
diff
changeset
|
54 >>> open('b', 'w').write('this is a binary\0') and None |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
55 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
56 ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
57 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
58 Write a long string to the placeholder: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
59 |
38080
0a10f142299d
py3: suppress the output from .write() calls in few tests
Pulkit Goyal <7895pulkit@gmail.com>
parents:
22046
diff
changeset
|
60 >>> open('b', 'w').write('this' * 1000) and None |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
61 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
62 ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
63 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
64 Commit shouldn't succeed: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
65 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
66 $ hg --config extensions.n=$TESTTMP/nolink.py ci -m1 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
67 nothing changed |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
68 [1] |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
69 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
70 Write a valid string to the placeholder: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
71 |
38080
0a10f142299d
py3: suppress the output from .write() calls in few tests
Pulkit Goyal <7895pulkit@gmail.com>
parents:
22046
diff
changeset
|
72 >>> open('b', 'w').write('this') and None |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
73 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
74 M b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
75 $ hg --config extensions.n=$TESTTMP/nolink.py ci -m1 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
76 $ hg manifest tip --verbose |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
77 644 a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
78 644 @ b |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15441
diff
changeset
|
79 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15441
diff
changeset
|
80 $ cd .. |