narrowrepo.py
29 lines
| 933 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. | ||||
Matt Harbison
|
r52756 | from __future__ import annotations | ||
Augie Fackler
|
r36096 | |||
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) | ||||
Manuel Jacob
|
r51309 | def peer(self, *args, **kwds): | ||
peer = super(narrowrepository, self).peer(*args, **kwds) | ||||
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 | ||