author | Mads Kiilerich <mads@kiilerich.com> |
Mon, 07 Nov 2011 03:14:55 +0100 | |
changeset 15445 | 7cbb81c47025 |
parent 15441 | e0348815e806 |
child 16913 | f2719b387380 |
permissions | -rw-r--r-- |
15441
e0348815e806
tests: use 'hghave symlink' for tests using symlinks
Mads Kiilerich <mads@kiilerich.com>
parents:
15348
diff
changeset
|
1 |
$ "$TESTDIR/hghave" symlink || exit 80 |
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 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
6 |
> from mercurial import extensions, util |
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): |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
12 |
> extensions.wrapfunction(util, 'setflags', setflags) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
13 |
> extensions.wrapfunction(util, 'checklink', checklink) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
14 |
> EOF |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
15 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
16 |
$ hg init unix-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
17 |
$ cd unix-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
18 |
$ echo foo > a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
19 |
$ ln -s a b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
20 |
$ hg ci -Am0 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
21 |
adding a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
22 |
adding b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
23 |
$ cd .. |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
24 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
25 |
Simulate a checkout shared on NFS/Samba: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
26 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
27 |
$ hg clone -q unix-repo shared |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
28 |
$ cd shared |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
29 |
$ rm b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
30 |
$ echo foo > b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
31 |
$ hg --config extensions.n=$TESTTMP/nolink.py status --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
32 |
ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
33 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
34 |
Make a clone using placeholders: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
35 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
36 |
$ hg --config extensions.n=$TESTTMP/nolink.py clone . ../win-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
37 |
updating to branch default |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
38 |
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
|
39 |
$ cd ../win-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
40 |
$ cat b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
41 |
a (no-eol) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
42 |
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
43 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
44 |
Write binary data to the placeholder: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
45 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
46 |
>>> open('b', 'w').write('this is a binary\0') |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
47 |
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
48 |
ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
49 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
50 |
Write a long string to the placeholder: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
51 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
52 |
>>> open('b', 'w').write('this' * 1000) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
53 |
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
54 |
ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
55 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
56 |
Commit shouldn't succeed: |
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 |
$ hg --config extensions.n=$TESTTMP/nolink.py ci -m1 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
59 |
nothing changed |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
60 |
[1] |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
61 |
|
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
62 |
Write a valid string to the placeholder: |
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 |
>>> open('b', 'w').write('this') |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
65 |
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
66 |
M b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
67 |
$ hg --config extensions.n=$TESTTMP/nolink.py ci -m1 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
68 |
$ hg manifest tip --verbose |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
69 |
644 a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
70 |
644 @ b |