narrowrepo.py
28 lines
| 890 B
| 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. | ||||
Augie Fackler
|
r43346 | from mercurial import wireprototypes | ||
Pulkit Goyal
|
r39969 | |||
Augie Fackler
|
r43346 | from . import narrowdirstate | ||
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__): | ||||
Kyle Lippincott
|
r38142 | def _makedirstate(self): | ||
dirstate = super(narrowrepository, self)._makedirstate() | ||||
return narrowdirstate.wrapdirstate(self, dirstate) | ||||
r50648 | def peer(self, path=None): | |||
peer = super(narrowrepository, self).peer(path=path) | ||||
Pulkit Goyal
|
r40110 | peer._caps.add(wireprototypes.NARROWCAP) | ||
peer._caps.add(wireprototypes.ELLIPSESCAP) | ||||
Martin von Zweigbergk
|
r39564 | return peer | ||
Augie Fackler
|
r36096 | repo.__class__ = narrowrepository | ||