diff -r 20027be9f23d -r 206532700213 mercurial/dirstate.py --- a/mercurial/dirstate.py Mon Feb 20 01:54:07 2017 -0800 +++ b/mercurial/dirstate.py Tue Feb 21 01:20:59 2017 +0900 @@ -23,6 +23,7 @@ pathutil, pycompat, scmutil, + txnutil, util, ) @@ -59,22 +60,6 @@ return set(fname for fname, e in dmap.iteritems() if e[0] != 'n' or e[3] == -1) -def _trypending(root, vfs, filename): - '''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 root == encoding.environ.get('HG_PENDING'): - try: - return (vfs('%s.pending' % filename), True) - except IOError as inst: - if inst.errno != errno.ENOENT: - raise - return (vfs(filename), False) - class dirstate(object): def __init__(self, opener, ui, root, validate): @@ -385,7 +370,7 @@ raise def _opendirstatefile(self): - fp, mode = _trypending(self._root, self._opener, self._filename) + fp, mode = txnutil.trypending(self._root, self._opener, self._filename) if self._pendingmode is not None and self._pendingmode != mode: fp.close() raise error.Abort(_('working directory state may be '