##// END OF EJS Templates
setup: don't support py 3.5.0, 3.5.1, 3.5.2 because of bug in codecs...
setup: don't support py 3.5.0, 3.5.1, 3.5.2 because of bug in codecs codecs.escape_encode() raises SystemError if an empty bytestring is passed. We do that at some places in our code and because of this bug, things break. Therefore we can't support the mentioned version. The bug was fixed in 3.5.3, 3.6.0 beta 2. We can't support 3.6.0 anyway because of bug in formatting bytestrings. Link to the python bug: https://bugs.python.org/issue25270 Differential Revision: https://phab.mercurial-scm.org/D4475

File last commit:

r31050:20653270 default
r39608:b6b9488a default
Show More
txnutil.py
36 lines | 1.0 KiB | text/x-python | PythonLexer
# txnutil.py - transaction related utilities
#
# Copyright FUJIWARA Katsunori <foozy@lares.dti.ne.jp> and others
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
import errno
from . import (
encoding,
)
def mayhavepending(root):
'''return whether 'root' may have pending changes, which are
visible to this process.
'''
return root == encoding.environ.get('HG_PENDING')
def trypending(root, vfs, filename, **kwargs):
'''Open file to be read according to HG_PENDING environment variable
This opens '.pending' of specified 'filename' only when HG_PENDING
is equal to 'root'.
This returns '(fp, is_pending_opened)' tuple.
'''
if mayhavepending(root):
try:
return (vfs('%s.pending' % filename, **kwargs), True)
except IOError as inst:
if inst.errno != errno.ENOENT:
raise
return (vfs(filename, **kwargs), False)