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 testVisitchildrensetM2SubdirPrefix(self):
     m1 = matchmod.alwaysmatcher(b'', b'')
     m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     um = matchmod.unionmatcher([m1, m2])
     self.assertEqual(um.visitchildrenset(b'.'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all')
     self.assertEqual(um.visitchildrenset(b'folder'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
Ejemplo n.º 3
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'])
     um = matchmod.unionmatcher([m1, m2])
     self.assertEqual(um.visitchildrenset(b'.'), {b'dir'})
     self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'})
     self.assertEqual(um.visitchildrenset(b'dir/subdir'), {b'x', b'z'})
     self.assertEqual(um.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(um.visitchildrenset(b'folder'), set())
     self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
Ejemplo n.º 4
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'])
     um = matchmod.unionmatcher([m1, m2])
     # OPT: these next three could probably be False as well.
     self.assertEqual(um.visitdir(b'.'), True)
     self.assertEqual(um.visitdir(b'dir'), True)
     self.assertEqual(um.visitdir(b'dir/subdir'), True)
     self.assertFalse(um.visitdir(b'dir/foo'))
     self.assertFalse(um.visitdir(b'folder'))
     self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all')
     self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all')
Ejemplo n.º 5
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'])
     um = matchmod.unionmatcher([m1, m2])
     self.assertEqual(um.visitchildrenset(b'.'), {b'dir'})
     self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'})
     self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(um.visitchildrenset(b'folder'), set())
     self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
     # OPT: this should probably be 'all' not 'this'.
     self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'this')
Ejemplo n.º 6
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'])
     um = matchmod.unionmatcher([m1, m2])
     self.assertEqual(um.visitdir(b'.'), True)
     self.assertEqual(um.visitdir(b'dir'), True)
     self.assertEqual(um.visitdir(b'dir/subdir'), b'all')
     self.assertFalse(um.visitdir(b'dir/foo'))
     self.assertFalse(um.visitdir(b'folder'))
     self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all')
     # OPT: this should probably be 'all' not True.
     self.assertEqual(um.visitdir(b'dir/subdir/z'), True)
Ejemplo n.º 7
0
 def testVisitchildrensetIncludeInclude2(self):
     m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
     m2 = matchmod.match(b'', b'', include=[b'path:folder'])
     um = matchmod.unionmatcher([m1, m2])
     self.assertEqual(um.visitchildrenset(b'.'), {b'folder', b'dir'})
     self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'})
     self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/foo'), set())
     self.assertEqual(um.visitchildrenset(b'folder'), b'all')
     # OPT: These next two could be 'all' instead of 'this'.
     self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'this')
     self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'this')
Ejemplo n.º 8
0
 def testVisitchildrensetM2never(self):
     m1 = matchmod.alwaysmatcher(b'', b'')
     m2 = matchmod.nevermatcher(b'', b'')
     um = matchmod.unionmatcher([m1, m2])
     # um should be equivalent to a alwaysmatcher.
     self.assertEqual(um.visitchildrenset(b'.'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all')
     self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
     self.assertEqual(um.visitchildrenset(b'folder'), b'all')
Ejemplo n.º 9
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)