mercurial/manifest.py
changeset 21879 090dcaaf3fff
parent 20075 f8737bce736a
child 22408 dc97e04c12ad
equal deleted inserted replaced
21878:e2530d4a47c1 21879:090dcaaf3fff
    23         return set(self._flags.keys())
    23         return set(self._flags.keys())
    24     def set(self, f, flags):
    24     def set(self, f, flags):
    25         self._flags[f] = flags
    25         self._flags[f] = flags
    26     def copy(self):
    26     def copy(self):
    27         return manifestdict(self, dict.copy(self._flags))
    27         return manifestdict(self, dict.copy(self._flags))
       
    28     def intersectfiles(self, files):
       
    29         '''make a new manifestdict with the intersection of self with files
       
    30 
       
    31         The algorithm assumes that files is much smaller than self.'''
       
    32         ret = manifestdict()
       
    33         for fn in files:
       
    34             if fn in self:
       
    35                 ret[fn] = self[fn]
       
    36                 flags = self._flags.get(fn, None)
       
    37                 if flags:
       
    38                     ret._flags[fn] = flags
       
    39         return ret
    28     def flagsdiff(self, d2):
    40     def flagsdiff(self, d2):
    29         return dicthelpers.diff(self._flags, d2._flags, "")
    41         return dicthelpers.diff(self._flags, d2._flags, "")
    30 
    42 
    31 class manifest(revlog.revlog):
    43 class manifest(revlog.revlog):
    32     def __init__(self, opener):
    44     def __init__(self, opener):