narrowrepo.py
29 lines
| 857 B
| text/x-python
|
PythonLexer
|
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 ( | ||||
|
r38142 | narrowdirstate, | ||
|
r36096 | narrowrevlog, | ||
) | ||||
|
r36484 | def wraprepo(repo): | ||
|
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 | ||||
|
r38142 | def _makedirstate(self): | ||
dirstate = super(narrowrepository, self)._makedirstate() | ||||
return narrowdirstate.wrapdirstate(self, dirstate) | ||||
|
r36096 | repo.__class__ = narrowrepository | ||