mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
9473b487b5
Summary: Enables treemanifest for about 100 more tests. To make them pass I had to expose the gettreepack capability from peers, which just works, and enable treeonly and sendtrees by default in the tests, which I probably should've done before anyway. Reviewed By: quark-zju Differential Revision: D21894955 fbshipit-source-id: 7a6a4d453824fb8c81a797a5487bf2ecc2b67761
83 lines
1.9 KiB
Perl
83 lines
1.9 KiB
Perl
#require py2
|
|
#chg-compatible
|
|
|
|
#require symlink
|
|
|
|
Create extension that can disable symlink support:
|
|
|
|
$ cat > nolink.py <<EOF
|
|
> from edenscm.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
|
|
|
|
Empty placeholder:
|
|
|
|
$ rm b
|
|
$ touch b
|
|
$ hg --config extensions.n=$TESTTMP/nolink.py st --debug
|
|
ignoring suspect symlink placeholder "b"
|
|
|
|
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
|
|
|
|
$ cd ..
|