equal
deleted
inserted
replaced
6 # GNU General Public License version 2 or any later version. |
6 # GNU General Public License version 2 or any later version. |
7 |
7 |
8 from __future__ import absolute_import |
8 from __future__ import absolute_import |
9 |
9 |
10 import difflib |
10 import difflib |
|
11 import errno |
|
12 |
|
13 from .i18n import _ |
11 |
14 |
12 from . import ( |
15 from . import ( |
|
16 error, |
13 pycompat, |
17 pycompat, |
14 scmutil, |
18 scmutil, |
15 util, |
19 util, |
16 ) |
20 ) |
17 |
21 |
98 return |
102 return |
99 |
103 |
100 for lnum, cstart, cend, line in matchlines(body, self._regexp): |
104 for lnum, cstart, cend, line in matchlines(body, self._regexp): |
101 s = linestate(line, lnum, cstart, cend) |
105 s = linestate(line, lnum, cstart, cend) |
102 m.append(s) |
106 m.append(s) |
|
107 |
|
108 def _readfile(self, ctx, fn): |
|
109 rev = ctx.rev() |
|
110 if rev is None: |
|
111 fctx = ctx[fn] |
|
112 try: |
|
113 return fctx.data() |
|
114 except IOError as e: |
|
115 if e.errno != errno.ENOENT: |
|
116 raise |
|
117 else: |
|
118 flog = self._getfile(fn) |
|
119 fnode = ctx.filenode(fn) |
|
120 try: |
|
121 return flog.read(fnode) |
|
122 except error.CensoredNodeError: |
|
123 self._ui.warn( |
|
124 _( |
|
125 b'cannot search in censored file: ' |
|
126 b'%(filename)s:%(revnum)s\n' |
|
127 ) |
|
128 % {b'filename': fn, b'revnum': pycompat.bytestr(rev)} |
|
129 ) |