mercurial/localrepo.py
changeset 4137 26596a6b6518
parent 4134 9dc64c8414ca
child 4160 b4bd2f3ea347
equal deleted inserted replaced
4136:eb5d4fec1487 4137:26596a6b6518
   523         return self._filter("encode", filename, data)
   523         return self._filter("encode", filename, data)
   524 
   524 
   525     def wwrite(self, filename, data, flags):
   525     def wwrite(self, filename, data, flags):
   526         data = self._filter("decode", filename, data)
   526         data = self._filter("decode", filename, data)
   527         if "l" in flags:
   527         if "l" in flags:
       
   528             f = self.wjoin(filename)
   528             try:
   529             try:
   529                 os.unlink(self.wjoin(filename))
   530                 os.unlink(f)
   530             except OSError:
   531             except OSError:
   531                 pass
   532                 pass
   532             os.symlink(data, self.wjoin(filename))
   533             d = os.path.dirname(f)
       
   534             if not os.path.exists(d):
       
   535                 os.makedirs(d)
       
   536             os.symlink(data, f)
   533         else:
   537         else:
   534             try:
   538             try:
   535                 if self._link(filename):
   539                 if self._link(filename):
   536                     os.unlink(self.wjoin(filename))
   540                     os.unlink(self.wjoin(filename))
   537             except OSError:
   541             except OSError: