##// END OF EJS Templates
hg: acquire wlock while updating the working directory via updatetotally...
hg: acquire wlock while updating the working directory via updatetotally updatetotally() might be invoked outside wlock scope (e.g. invocation via postincoming() at "hg unbundle" or "hg pull"). In such case, acquisition of wlock is needed for consistent view, because parallel "hg update" and/or "hg bookmarks" might change working directory status while executing updatetotally(). Strictly speaking, truly consistent updating should acquire also store lock, because active bookmark might be moved to another one outside wlock scope (e.g. pulling from other repository causes updating current active one). Acquisition of wlock in this patch ensures consistency in as same level as past "hg update".

File last commit:

r17192:1ac628cd default
r28503:138ec883 default
Show More
notcapable
24 lines | 806 B | text/plain | TextLexer
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 # Disable the $CAP wire protocol capability.
if test -z "$CAP"
then
echo "CAP environment variable not set."
fi
cat > notcapable-$CAP.py << EOF
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 from mercurial import extensions, peer, localrepo
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 def extsetup():
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 extensions.wrapfunction(peer.peerrepository, 'capable', wrapcapable)
extensions.wrapfunction(localrepo.localrepository, 'peer', wrappeer)
def wrapcapable(orig, self, name, *args, **kwargs):
Peter Arrenbrecht
tests: support multiple caps in notcapable
r14409 if name in '$CAP'.split(' '):
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 return False
return orig(self, name, *args, **kwargs)
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 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)
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 EOF
echo '[extensions]' >> $HGRCPATH
echo "notcapable-$CAP = `pwd`/notcapable-$CAP.py" >> $HGRCPATH