mercurial/manifest.py
changeset 24405 cbe9d50d9e65
parent 24404 96cccf1e3257
child 24406 1297480ed347
equal deleted inserted replaced
24404:96cccf1e3257 24405:cbe9d50d9e65
   480                     ret.setflag(fn, flags)
   480                     ret.setflag(fn, flags)
   481         return ret
   481         return ret
   482 
   482 
   483     def filesnotin(self, m2):
   483     def filesnotin(self, m2):
   484         '''Set of files in this manifest that are not in the other'''
   484         '''Set of files in this manifest that are not in the other'''
   485         files = set(self.iterkeys())
   485         files = set()
   486         files.difference_update(m2.iterkeys())
   486         def _filesnotin(t1, t2):
       
   487             for d, m1 in t1._dirs.iteritems():
       
   488                 if d in t2._dirs:
       
   489                     m2 = t2._dirs[d]
       
   490                     _filesnotin(m1, m2)
       
   491                 else:
       
   492                     files.update(m1.iterkeys())
       
   493 
       
   494             for fn in t1._files.iterkeys():
       
   495                 if fn not in t2._files:
       
   496                     files.add(t1._subpath(fn))
       
   497 
       
   498         _filesnotin(self, m2)
   487         return files
   499         return files
   488 
   500 
   489     @propertycache
   501     @propertycache
   490     def _alldirs(self):
   502     def _alldirs(self):
   491         return scmutil.dirs(self)
   503         return scmutil.dirs(self)