mercurial/localrepo.py
changeset 4868 192cd95c2ba8
parent 4856 1f3742217a76
parent 4860 0403b80352c9
child 4889 d69b1fb111b9
equal deleted inserted replaced
4857:8be7ba425621 4868:192cd95c2ba8
   458         return self._filter("encode", filename, data)
   458         return self._filter("encode", filename, data)
   459 
   459 
   460     def wwrite(self, filename, data, flags):
   460     def wwrite(self, filename, data, flags):
   461         data = self._filter("decode", filename, data)
   461         data = self._filter("decode", filename, data)
   462         if "l" in flags:
   462         if "l" in flags:
   463             f = self.wjoin(filename)
   463             self.wopener.symlink(data, filename)
   464             try:
       
   465                 os.unlink(f)
       
   466             except OSError:
       
   467                 pass
       
   468             d = os.path.dirname(f)
       
   469             if not os.path.exists(d):
       
   470                 os.makedirs(d)
       
   471             os.symlink(data, f)
       
   472         else:
   464         else:
   473             try:
   465             try:
   474                 if self._link(filename):
   466                 if self._link(filename):
   475                     os.unlink(self.wjoin(filename))
   467                     os.unlink(self.wjoin(filename))
   476             except OSError:
   468             except OSError: