view tests/notcapable @ 28556:0706d60d070f

cache: remove branch revision file before rewriting the branch name file New branch names are usually appended to the branch name file. If that fails or the file has been modified by another process, it is rewritten. That left a small opportunity that there could be references to non-existent entries in the file while it was rewritten. To avoid that, remove the revision branch cache file with the references to the branch name file before rewriting the branch name file. Worst case, when interrupted at the wrong time, the cache will be lost and rebuilt next time. It is unknown if this fixes a real problem that ever happened.
author Mads Kiilerich <madski@unity3d.com>
date Sun, 13 Mar 2016 02:06:21 +0100
parents 1ac628cd7113
children dedab036215d
line wrap: on
line source

# Disable the $CAP wire protocol capability.

if test -z "$CAP"
then
    echo "CAP environment variable not set."
fi

cat > notcapable-$CAP.py << EOF
from mercurial import extensions, peer, localrepo
def extsetup():
    extensions.wrapfunction(peer.peerrepository, 'capable', wrapcapable)
    extensions.wrapfunction(localrepo.localrepository, 'peer', wrappeer)
def wrapcapable(orig, self, name, *args, **kwargs):
    if name in '$CAP'.split(' '):
        return False
    return orig(self, name, *args, **kwargs)
def wrappeer(orig, self):
    # Since we're disabling some newer features, we need to make sure local
    # repos add in the legacy features again.
    return localrepo.locallegacypeer(self)
EOF

echo '[extensions]' >> $HGRCPATH
echo "notcapable-$CAP = `pwd`/notcapable-$CAP.py" >> $HGRCPATH