Ejemplo n.º 1
0
 def walk(orig, self, match, subrepos, unknown, ignored, full=True):
     # hack to not exclude explicitly-specified paths so that they can
     # be warned later on e.g. dirstate.add()
     em = matchmod.exact(match.files())
     sm = matchmod.unionmatcher([self._sparsematcher, em])
     match = matchmod.intersectmatchers(match, sm)
     return orig(self, match, subrepos, unknown, ignored, full)
Ejemplo n.º 2
0
 def _cgmatcher(cgpacker):
     localmatcher = cgpacker._repo.narrowmatch()
     remotematcher = getattr(cgpacker, '_narrow_matcher', lambda: None)()
     if remotematcher:
         return matchmod.intersectmatchers(localmatcher, remotematcher)
     else:
         return localmatcher
Ejemplo n.º 3
0
 def testVisitchildrensetIncludeInclude(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir'])
     im = matchmod.intersectmatchers(m1, m2)
     self.assertEqual(im.visitchildrenset(b'.'), {b'dir'})
     self.assertEqual(im.visitchildrenset(b'dir'), b'this')
     self.assertEqual(im.visitchildrenset(b'dir/subdir'), set())
     self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(im.visitchildrenset(b'folder'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set())
Ejemplo n.º 4
0
 def testVisitdirIncludeIncludfe(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir'])
     im = matchmod.intersectmatchers(m1, m2)
     self.assertEqual(im.visitdir(b'.'), True)
     self.assertEqual(im.visitdir(b'dir'), True)
     self.assertFalse(im.visitdir(b'dir/subdir'))
     self.assertFalse(im.visitdir(b'dir/foo'))
     self.assertFalse(im.visitdir(b'folder'))
     self.assertFalse(im.visitdir(b'dir/subdir/z'))
     self.assertFalse(im.visitdir(b'dir/subdir/x'))
Ejemplo n.º 5
0
 def testVisitdirIncludeInclude2(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     m2 = matchmod.match(b'', b'', include=[b'path:folder'])
     im = matchmod.intersectmatchers(m1, m2)
     # FIXME: is True correct here?
     self.assertEqual(im.visitdir(b'.'), True)
     self.assertFalse(im.visitdir(b'dir'))
     self.assertFalse(im.visitdir(b'dir/subdir'))
     self.assertFalse(im.visitdir(b'dir/foo'))
     self.assertFalse(im.visitdir(b'folder'))
     self.assertFalse(im.visitdir(b'dir/subdir/z'))
     self.assertFalse(im.visitdir(b'dir/subdir/x'))
Ejemplo n.º 6
0
 def testVisitchildrensetIncludeInclude4(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
     m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir/z'])
     im = matchmod.intersectmatchers(m1, m2)
     # OPT: these next two could probably be set() as well.
     self.assertEqual(im.visitchildrenset(b'.'), {b'dir'})
     self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'})
     self.assertEqual(im.visitchildrenset(b'dir/subdir'), set())
     self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(im.visitchildrenset(b'folder'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set())
Ejemplo n.º 7
0
 def testVisitdirIncludeInclude4(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
     m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir/z'])
     im = matchmod.intersectmatchers(m1, m2)
     # OPT: these next three could probably be False as well.
     self.assertEqual(im.visitdir(b'.'), True)
     self.assertEqual(im.visitdir(b'dir'), True)
     self.assertEqual(im.visitdir(b'dir/subdir'), True)
     self.assertFalse(im.visitdir(b'dir/foo'))
     self.assertFalse(im.visitdir(b'folder'))
     self.assertFalse(im.visitdir(b'dir/subdir/z'))
     self.assertFalse(im.visitdir(b'dir/subdir/x'))
Ejemplo n.º 8
0
 def testVisitchildrensetIncludeInclude3(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
     m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     im = matchmod.intersectmatchers(m1, m2)
     self.assertEqual(im.visitchildrenset(b'.'), {b'dir'})
     self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'})
     self.assertEqual(im.visitchildrenset(b'dir/subdir'), {b'x'})
     self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(im.visitchildrenset(b'folder'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
     # OPT: this should probably be 'all' not 'this'.
     self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), b'this')
Ejemplo n.º 9
0
 def testVisitdirIncludeInclude3(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
     m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     im = matchmod.intersectmatchers(m1, m2)
     self.assertEqual(im.visitdir(b'.'), True)
     self.assertEqual(im.visitdir(b'dir'), True)
     self.assertEqual(im.visitdir(b'dir/subdir'), True)
     self.assertFalse(im.visitdir(b'dir/foo'))
     self.assertFalse(im.visitdir(b'folder'))
     self.assertFalse(im.visitdir(b'dir/subdir/z'))
     # OPT: this should probably be 'all' not True.
     self.assertEqual(im.visitdir(b'dir/subdir/x'), True)
Ejemplo n.º 10
0
 def testVisitchildrensetIncludeInclude2(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     m2 = matchmod.match(b'', b'', include=[b'path:folder'])
     im = matchmod.intersectmatchers(m1, m2)
     # FIXME: is set() correct here?
     self.assertEqual(im.visitchildrenset(b'.'), set())
     self.assertEqual(im.visitchildrenset(b'dir'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir'), set())
     self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(im.visitchildrenset(b'folder'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set())
Ejemplo n.º 11
0
 def testVisitdirM2always(self):
     m1 = matchmod.alwaysmatcher(b'', b'')
     m2 = matchmod.alwaysmatcher(b'', b'')
     im = matchmod.intersectmatchers(m1, m2)
     # im should be equivalent to a alwaysmatcher.
     self.assertEqual(im.visitdir(b'.'), b'all')
     self.assertEqual(im.visitdir(b'dir'), b'all')
     self.assertEqual(im.visitdir(b'dir/subdir'), b'all')
     self.assertEqual(im.visitdir(b'dir/subdir/z'), b'all')
     self.assertEqual(im.visitdir(b'dir/foo'), b'all')
     self.assertEqual(im.visitdir(b'dir/subdir/x'), b'all')
     self.assertEqual(im.visitdir(b'folder'), b'all')
Ejemplo n.º 12
0
 def testVisitchildrensetM2SubdirPrefix(self):
     m1 = matchmod.alwaysmatcher(b'', b'')
     m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     im = matchmod.intersectmatchers(m1, m2)
     self.assertEqual(im.visitchildrenset(b'.'), {b'dir'})
     self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'})
     self.assertEqual(im.visitchildrenset(b'dir/subdir'), b'all')
     self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(im.visitchildrenset(b'folder'), set())
     # OPT: We should probably return 'all' for these
     self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), b'this')
     self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), b'this')
Ejemplo n.º 13
0
 def testVisitchildrensetM2never(self):
     m1 = matchmod.alwaysmatcher(b'', b'')
     m2 = matchmod.nevermatcher(b'', b'')
     im = matchmod.intersectmatchers(m1, m2)
     # im should be equivalent to a nevermqtcher.
     self.assertEqual(im.visitchildrenset(b'.'), set())
     self.assertEqual(im.visitchildrenset(b'dir'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
     self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set())
     self.assertEqual(im.visitchildrenset(b'folder'), set())
Ejemplo n.º 14
0
 def testVisitdirM2never(self):
     m1 = matchmod.alwaysmatcher(b'', b'')
     m2 = matchmod.nevermatcher(b'', b'')
     im = matchmod.intersectmatchers(m1, m2)
     # im should be equivalent to a nevermatcher.
     self.assertFalse(im.visitdir(b'.'))
     self.assertFalse(im.visitdir(b'dir'))
     self.assertFalse(im.visitdir(b'dir/subdir'))
     self.assertFalse(im.visitdir(b'dir/subdir/z'))
     self.assertFalse(im.visitdir(b'dir/foo'))
     self.assertFalse(im.visitdir(b'dir/subdir/x'))
     self.assertFalse(im.visitdir(b'folder'))
Ejemplo n.º 15
0
 def testVisitdirM2SubdirPrefix(self):
     m1 = matchmod.alwaysmatcher(b'', b'')
     m2 = matchmod.match(b'', b'', patterns=[b'path:dir/subdir'])
     im = matchmod.intersectmatchers(m1, m2)
     self.assertEqual(im.visitdir(b'.'), True)
     self.assertEqual(im.visitdir(b'dir'), True)
     self.assertEqual(im.visitdir(b'dir/subdir'), b'all')
     self.assertFalse(im.visitdir(b'dir/foo'))
     self.assertFalse(im.visitdir(b'folder'))
     # OPT: We should probably return 'all' for these; we don't because
     # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of
     # an 'all' pattern, just True.
     self.assertEqual(im.visitdir(b'dir/subdir/z'), True)
     self.assertEqual(im.visitdir(b'dir/subdir/x'), True)
Ejemplo n.º 16
0
 def walk(self,
          match,
          subrepos,
          unknown,
          ignored,
          full=True,
          narrowonly=True):
     if narrowonly:
         # hack to not exclude explicitly-specified paths so that they
         # can be warned later on e.g. dirstate.add()
         em = matchmod.exact(match._root, match._cwd, match.files())
         nm = matchmod.unionmatcher([repo.narrowmatch(), em])
         match = matchmod.intersectmatchers(match, nm)
     return super(narrowdirstate, self).walk(match, subrepos, unknown,
                                             ignored, full)
Ejemplo n.º 17
0
 def walk(orig, self, match, subrepos, unknown, ignored, full=True):
     match = matchmod.intersectmatchers(match, self._sparsematcher)
     return orig(self, match, subrepos, unknown, ignored, full)