narrowrepo.py
36 lines
| 1.1 KiB
| text/x-python
|
PythonLexer
Augie Fackler
|
r36096 | # narrowrepo.py - repository which supports narrow revlogs, lazy loading | ||
# | ||||
# Copyright 2017 Google, Inc. | ||||
# | ||||
# This software may be used and distributed according to the terms of the | ||||
# GNU General Public License version 2 or any later version. | ||||
from __future__ import absolute_import | ||||
from . import ( | ||||
Kyle Lippincott
|
r38142 | narrowdirstate, | ||
Augie Fackler
|
r36096 | narrowrevlog, | ||
Martin von Zweigbergk
|
r39565 | narrowwirepeer, | ||
Augie Fackler
|
r36096 | ) | ||
Martin von Zweigbergk
|
r36484 | def wraprepo(repo): | ||
Augie Fackler
|
r36096 | """Enables narrow clone functionality on a single local repository.""" | ||
class narrowrepository(repo.__class__): | ||||
def file(self, f): | ||||
fl = super(narrowrepository, self).file(f) | ||||
narrowrevlog.makenarrowfilelog(fl, self.narrowmatch()) | ||||
return fl | ||||
Kyle Lippincott
|
r38142 | def _makedirstate(self): | ||
dirstate = super(narrowrepository, self)._makedirstate() | ||||
return narrowdirstate.wrapdirstate(self, dirstate) | ||||
Martin von Zweigbergk
|
r39564 | def peer(self): | ||
peer = super(narrowrepository, self).peer() | ||||
Martin von Zweigbergk
|
r39565 | peer._caps.add(narrowwirepeer.NARROWCAP) | ||
peer._caps.add(narrowwirepeer.ELLIPSESCAP) | ||||
Martin von Zweigbergk
|
r39564 | return peer | ||
Augie Fackler
|
r36096 | repo.__class__ = narrowrepository | ||