##// END OF EJS Templates
symlinks: add _link checking function
Matt Mackall -
r4003:616806f7 default
parent child Browse files
Show More
@@ -121,6 +121,11 b' class localrepository(repo.repository):'
121 self.decodepats = None
121 self.decodepats = None
122 self.transhandle = None
122 self.transhandle = None
123
123
124 self._link = lambda x: False
125 if util.checklink(self.root):
126 r = self.root # avoid circular reference in lambda
127 self._link = lambda x: util.is_link(os.path.join(r, x))
128
124 self.dirstate = dirstate.dirstate(self.opener, self.ui, self.root)
129 self.dirstate = dirstate.dirstate(self.opener, self.ui, self.root)
125
130
126 def url(self):
131 def url(self):
@@ -486,7 +491,10 b' class localrepository(repo.repository):'
486 l.append((mf, cmd))
491 l.append((mf, cmd))
487 self.encodepats = l
492 self.encodepats = l
488
493
489 data = self.wopener(filename, 'r').read()
494 if self._link(filename):
495 data = os.readlink(self.wjoin(filename))
496 else:
497 data = self.wopener(filename, 'r').read()
490
498
491 for mf, cmd in self.encodepats:
499 for mf, cmd in self.encodepats:
492 if mf(filename):
500 if mf(filename):
@@ -719,7 +727,7 b' class localrepository(repo.repository):'
719 try:
727 try:
720 new[f] = self.filecommit(f, m1, m2, linkrev, tr, changed)
728 new[f] = self.filecommit(f, m1, m2, linkrev, tr, changed)
721 m1.set(f, is_exec(f), is_link(f))
729 m1.set(f, is_exec(f), is_link(f))
722 except IOError:
730 except OSError:
723 if use_dirstate:
731 if use_dirstate:
724 self.ui.warn(_("trouble committing %s!\n") % f)
732 self.ui.warn(_("trouble committing %s!\n") % f)
725 raise
733 raise
General Comments 0
You need to be logged in to leave comments. Login now