Mercurial > hg
view tests/test-symlink-placeholder.t @ 18116:bcee63733aad
branchmap: create a mercurial.branchmap module
This is the foundation stone for an extraction of branches map logic from local
repository class. Most of the branches map logic have very few caller and
therefor does not fit in the current criteria for code held by the localrepo
class. Important change will be made to this code in relation with revision
filtering. So we extract it in a dedicated module before adding additional
complexity.
Follow up commit do the actual code movement.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Wed, 19 Dec 2012 14:43:33 +0100 |
parents | f2719b387380 |
children | 36f48c7d5944 |
line wrap: on
line source
$ "$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 ..