equal
deleted
inserted
replaced
44 sparse, |
44 sparse, |
45 subrepo, |
45 subrepo, |
46 subrepoutil, |
46 subrepoutil, |
47 util, |
47 util, |
48 ) |
48 ) |
49 from .utils import dateutil |
49 from .utils import ( |
|
50 dateutil, |
|
51 stringutil, |
|
52 ) |
50 |
53 |
51 propertycache = util.propertycache |
54 propertycache = util.propertycache |
52 |
55 |
53 nonascii = re.compile(br'[^\x21-\x7f]').search |
56 nonascii = re.compile(br'[^\x21-\x7f]').search |
54 |
57 |
816 def path(self): |
819 def path(self): |
817 return self._path |
820 return self._path |
818 |
821 |
819 def isbinary(self): |
822 def isbinary(self): |
820 try: |
823 try: |
821 return util.binary(self.data()) |
824 return stringutil.binary(self.data()) |
822 except IOError: |
825 except IOError: |
823 return False |
826 return False |
824 def isexec(self): |
827 def isexec(self): |
825 return 'x' in self.flags() |
828 return 'x' in self.flags() |
826 def islink(self): |
829 def islink(self): |
1498 # symlink |
1501 # symlink |
1499 sane = [] |
1502 sane = [] |
1500 for f in files: |
1503 for f in files: |
1501 if self.flags(f) == 'l': |
1504 if self.flags(f) == 'l': |
1502 d = self[f].data() |
1505 d = self[f].data() |
1503 if d == '' or len(d) >= 1024 or '\n' in d or util.binary(d): |
1506 if (d == '' or len(d) >= 1024 or '\n' in d |
|
1507 or stringutil.binary(d)): |
1504 self._repo.ui.debug('ignoring suspect symlink placeholder' |
1508 self._repo.ui.debug('ignoring suspect symlink placeholder' |
1505 ' "%s"\n' % f) |
1509 ' "%s"\n' % f) |
1506 continue |
1510 continue |
1507 sane.append(f) |
1511 sane.append(f) |
1508 return sane |
1512 return sane |