Mercurial > public > mercurial-scm > hg
diff mercurial/grep.py @ 45699:888e633f0c1c
grep: move readfile() to grepsearcher class
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 09 Sep 2020 16:04:39 +0900 |
parents | 41e0cbccb260 |
children | c694b1841a5e |
line wrap: on
line diff
--- a/mercurial/grep.py Wed Sep 09 16:00:03 2020 +0900 +++ b/mercurial/grep.py Wed Sep 09 16:04:39 2020 +0900 @@ -8,8 +8,12 @@ from __future__ import absolute_import import difflib +import errno + +from .i18n import _ from . import ( + error, pycompat, scmutil, util, @@ -100,3 +104,26 @@ for lnum, cstart, cend, line in matchlines(body, self._regexp): s = linestate(line, lnum, cstart, cend) m.append(s) + + def _readfile(self, ctx, fn): + rev = ctx.rev() + if rev is None: + fctx = ctx[fn] + try: + return fctx.data() + except IOError as e: + if e.errno != errno.ENOENT: + raise + else: + flog = self._getfile(fn) + fnode = ctx.filenode(fn) + try: + return flog.read(fnode) + except error.CensoredNodeError: + self._ui.warn( + _( + b'cannot search in censored file: ' + b'%(filename)s:%(revnum)s\n' + ) + % {b'filename': fn, b'revnum': pycompat.bytestr(rev)} + )