diff options
author | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 14:49:51 +0100 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 14:49:51 +0100 |
commit | a498da43c7fdb9f24b73680c02a4a3588cc62d9a (patch) | |
tree | daf8119dae1749b5165b68033a1b23a7375ce9ce /tests/test-symlink-placeholder.t | |
download | mercurial-tarball-a498da43c7fdb9f24b73680c02a4a3588cc62d9a.tar.gz |
Tarball conversion
Diffstat (limited to 'tests/test-symlink-placeholder.t')
-rw-r--r-- | tests/test-symlink-placeholder.t | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/test-symlink-placeholder.t b/tests/test-symlink-placeholder.t new file mode 100644 index 0000000..501b62b --- /dev/null +++ b/tests/test-symlink-placeholder.t @@ -0,0 +1,72 @@ + $ "$TESTDIR/hghave" symlink || exit 80 + +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 + +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 .. |