equal
deleted
inserted
replaced
8 # GNU General Public License version 2 or any later version. |
8 # GNU General Public License version 2 or any later version. |
9 |
9 |
10 """Repository class for "in-memory pull" of one local repository to another, |
10 """Repository class for "in-memory pull" of one local repository to another, |
11 allowing operations like diff and log with revsets. |
11 allowing operations like diff and log with revsets. |
12 """ |
12 """ |
|
13 |
|
14 import contextlib |
13 |
15 |
14 |
16 |
15 from .i18n import _ |
17 from .i18n import _ |
16 |
18 |
17 from . import ( |
19 from . import ( |
110 ) |
112 ) |
111 self.index.append(e) |
113 self.index.append(e) |
112 self.bundlerevs.add(n) |
114 self.bundlerevs.add(n) |
113 n += 1 |
115 n += 1 |
114 |
116 |
|
117 @contextlib.contextmanager |
|
118 def reading(self): |
|
119 if 0 <= len(self.bundlerevs) < len(self.index): |
|
120 read_1 = super().reading |
|
121 else: |
|
122 read_1 = util.nullcontextmanager |
|
123 if 0 < len(self.bundlerevs): |
|
124 read_2 = self.revlog2.reading |
|
125 else: |
|
126 read_2 = util.nullcontextmanager |
|
127 with read_1(), read_2(): |
|
128 yield |
|
129 |
115 def _chunk(self, rev, df=None): |
130 def _chunk(self, rev, df=None): |
116 if rev <= self.repotiprev: |
131 if rev <= self.repotiprev: |
117 return revlog.revlog._chunk(self, rev) |
132 return revlog.revlog._chunk(self, rev) |
118 return self.revlog2._chunk(self.node(rev)) |
133 return self.revlog2._chunk(self.node(rev)) |
119 |
134 |