equal
deleted
inserted
replaced
38 return True |
38 return True |
39 path = decodedir(path) |
39 path = decodedir(path) |
40 if path.startswith('data/'): |
40 if path.startswith('data/'): |
41 return matcher(path[len('data/'):-len('.i')]) |
41 return matcher(path[len('data/'):-len('.i')]) |
42 elif path.startswith('meta/'): |
42 elif path.startswith('meta/'): |
43 return matcher.visitdir(path[len('meta/'):-len('/00manifest.i')] or '.') |
43 return matcher.visitdir(path[len('meta/'):-len('/00manifest.i')]) |
44 |
44 |
45 raise error.ProgrammingError("cannot decode path %s" % path) |
45 raise error.ProgrammingError("cannot decode path %s" % path) |
46 |
46 |
47 # This avoids a collision between a file named foo and a dir named |
47 # This avoids a collision between a file named foo and a dir named |
48 # foo.i or foo.d |
48 # foo.i or foo.d |