##// END OF EJS Templates
dirstate: add prefix and suffix arguments to backup...
dirstate: add prefix and suffix arguments to backup This would allow the code explicitly copying dirstate to use this method instead. Use of this method will increase encapsulation (the dirstate class will be sole owner of its on-disk storage).

File last commit:

r22046:7a9cbb31 default
r29189:930d4ee4 default
Show More
test-symlink-placeholder.t
79 lines | 1.9 KiB | text/troff | Tads3Lexer
/ tests / test-symlink-placeholder.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require symlink
Mads Kiilerich
tests: use 'hghave symlink' for tests using symlinks
r15441
Matt Mackall
windows: sanity-check symlink placeholders...
r15348 Create extension that can disable symlink support:
$ cat > nolink.py <<EOF
> from mercurial import extensions, util
> def setflags(orig, f, l, x):
> pass
> def checklink(orig, path):
> return False
> def extsetup(ui):
> extensions.wrapfunction(util, 'setflags', setflags)
> extensions.wrapfunction(util, 'checklink', checklink)
> EOF
$ hg init unix-repo
$ cd unix-repo
$ echo foo > a
$ ln -s a b
$ hg ci -Am0
adding a
adding b
$ cd ..
Simulate a checkout shared on NFS/Samba:
$ hg clone -q unix-repo shared
$ cd shared
$ rm b
$ echo foo > b
$ hg --config extensions.n=$TESTTMP/nolink.py status --debug
ignoring suspect symlink placeholder "b"
Make a clone using placeholders:
$ hg --config extensions.n=$TESTTMP/nolink.py clone . ../win-repo
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../win-repo
$ cat b
a (no-eol)
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug
Siddharth Agarwal
localrepo.status: ignore empty symlink placeholders...
r19650 Empty placeholder:
$ rm b
$ touch b
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug
ignoring suspect symlink placeholder "b"
Matt Mackall
windows: sanity-check symlink placeholders...
r15348 Write binary data to the placeholder:
>>> open('b', 'w').write('this is a binary\0')
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug
ignoring suspect symlink placeholder "b"
Write a long string to the placeholder:
>>> open('b', 'w').write('this' * 1000)
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug
ignoring suspect symlink placeholder "b"
Commit shouldn't succeed:
$ hg --config extensions.n=$TESTTMP/nolink.py ci -m1
nothing changed
[1]
Write a valid string to the placeholder:
>>> open('b', 'w').write('this')
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug
M b
$ hg --config extensions.n=$TESTTMP/nolink.py ci -m1
$ hg manifest tip --verbose
644 a
644 @ b
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..