equal
deleted
inserted
replaced
812 def __call__(self, path): |
812 def __call__(self, path): |
813 if path in self.audited: |
813 if path in self.audited: |
814 return |
814 return |
815 normpath = os.path.normcase(path) |
815 normpath = os.path.normcase(path) |
816 parts = splitpath(normpath) |
816 parts = splitpath(normpath) |
817 if (os.path.splitdrive(path)[0] or parts[0] in ('.hg', '') |
817 if (os.path.splitdrive(path)[0] or parts[0] in ('.hg', '.hg.', '') |
818 or os.pardir in parts): |
818 or os.pardir in parts): |
819 raise Abort(_("path contains illegal component: %s") % path) |
819 raise Abort(_("path contains illegal component: %s") % path) |
|
820 if '.hg' in path: |
|
821 for p in '.hg', '.hg.': |
|
822 if p in parts[1:-1]: |
|
823 pos = parts.index(p) |
|
824 base = os.path.join(*parts[:pos]) |
|
825 raise Abort(_('path %r is inside repo %r') % (path, base)) |
820 def check(prefix): |
826 def check(prefix): |
821 curpath = os.path.join(self.root, prefix) |
827 curpath = os.path.join(self.root, prefix) |
822 try: |
828 try: |
823 st = os.lstat(curpath) |
829 st = os.lstat(curpath) |
824 except OSError, err: |
830 except OSError, err: |