Show More
@@ -192,15 +192,18 b' class unionpeer(localrepo.localpeer):' | |||
|
192 | 192 | def canpush(self): |
|
193 | 193 | return False |
|
194 | 194 | |
|
195 |
class unionrepository( |
|
|
196 | def __init__(self, ui, path, path2): | |
|
197 | localrepo.localrepository.__init__(self, ui, path) | |
|
195 | class unionrepository(object): | |
|
196 | """Represents the union of data in 2 repositories. | |
|
197 | ||
|
198 | Instances are not usable if constructed directly. Use ``instance()`` | |
|
199 | or ``makeunionrepository()`` to create a usable instance. | |
|
200 | """ | |
|
201 | def __init__(self, repo2, url): | |
|
202 | self.repo2 = repo2 | |
|
203 | self._url = url | |
|
204 | ||
|
198 | 205 | self.ui.setconfig('phases', 'publish', False, 'unionrepo') |
|
199 | 206 | |
|
200 | self._url = 'union:%s+%s' % (util.expandpath(path), | |
|
201 | util.expandpath(path2)) | |
|
202 | self.repo2 = localrepo.localrepository(ui, path2) | |
|
203 | ||
|
204 | 207 | @localrepo.unfilteredpropertycache |
|
205 | 208 | def changelog(self): |
|
206 | 209 | return unionchangelog(self.svfs, self.repo2.svfs) |
@@ -260,4 +263,22 b' def instance(ui, path, create, intents=N' | |||
|
260 | 263 | repopath, repopath2 = s |
|
261 | 264 | else: |
|
262 | 265 | repopath, repopath2 = parentpath, path |
|
263 | return unionrepository(ui, repopath, repopath2) | |
|
266 | ||
|
267 | return makeunionrepository(ui, repopath, repopath2) | |
|
268 | ||
|
269 | def makeunionrepository(ui, repopath1, repopath2): | |
|
270 | """Make a union repository object from 2 local repo paths.""" | |
|
271 | repo1 = localrepo.instance(ui, repopath1, create=False) | |
|
272 | repo2 = localrepo.instance(ui, repopath2, create=False) | |
|
273 | ||
|
274 | url = 'union:%s+%s' % (util.expandpath(repopath1), | |
|
275 | util.expandpath(repopath2)) | |
|
276 | ||
|
277 | class derivedunionrepository(unionrepository, repo1.__class__): | |
|
278 | pass | |
|
279 | ||
|
280 | repo = repo1 | |
|
281 | repo.__class__ = derivedunionrepository | |
|
282 | unionrepository.__init__(repo1, repo2, url) | |
|
283 | ||
|
284 | return repo |
General Comments 0
You need to be logged in to leave comments.
Login now