Mercurial > hg
view tests/notcapable @ 33279:7912404b70f2
transaction: apply checkambig=True only on limited files for similarity
Now, transaction can determine whether avoidance of file stat
ambiguity is needed for each files, by blacklist "checkambigfiles".
For similarity to truncation in _playback(), this patch apply
checkambig=True only on limited files in code paths below.
- restoring files by util.copyfile(), in _playback()
(checkambigfiles itself is examined at first, because it as a
keyword argument might be None)
- writing files at finalization of transaction, in _generatefiles()
This patch reduces cost of checking stat at writing out and restoring
files, which aren't filecache-ed.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 04 Jul 2017 23:13:47 +0900 |
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