mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
largefiles: replace manifestdict.__contains__, don't extend class
We're soon going to add an alternative manifest class (treemanifest). Rather than extending both those classes by largesfiles versions, let's replace the method on the manifest instances.
This commit is contained in:
parent
1a03b7a16d
commit
47ac0996a7
@ -10,7 +10,7 @@
|
||||
import copy
|
||||
import os
|
||||
|
||||
from mercurial import error, manifest, match as match_, util
|
||||
from mercurial import error, match as match_, util
|
||||
from mercurial.i18n import _
|
||||
from mercurial import scmutil, localrepo
|
||||
|
||||
@ -38,17 +38,17 @@ def reposetup(ui, repo):
|
||||
def __getitem__(self, changeid):
|
||||
ctx = super(lfilesrepo, self).__getitem__(changeid)
|
||||
if self.lfstatus:
|
||||
class lfilesmanifestdict(manifest.manifestdict):
|
||||
def __contains__(self, filename):
|
||||
orig = super(lfilesmanifestdict, self).__contains__
|
||||
return orig(filename) or orig(lfutil.standin(filename))
|
||||
class lfilesctx(ctx.__class__):
|
||||
def files(self):
|
||||
filenames = super(lfilesctx, self).files()
|
||||
return [lfutil.splitstandin(f) or f for f in filenames]
|
||||
def manifest(self):
|
||||
man1 = super(lfilesctx, self).manifest()
|
||||
man1.__class__ = lfilesmanifestdict
|
||||
orig = man1.__contains__
|
||||
def __contains__(self, filename):
|
||||
return (orig(filename) or
|
||||
orig(lfutil.standin(filename)))
|
||||
man1.__contains__ = __contains__.__get__(man1)
|
||||
return man1
|
||||
def filectx(self, path, fileid=None, filelog=None):
|
||||
orig = super(lfilesctx, self).filectx
|
||||
|
Loading…
Reference in New Issue
Block a user