comparison mercurial/localrepo.py @ 5703:14789f30ac11

wwrite: simplify with util.set_flags - always attempt to delete the file (gets rid of read-only message) - always write as a normal file - use set_flags to convert to link or set exec
author Matt Mackall <mpm@selenic.com>
date Thu, 27 Dec 2007 22:27:47 -0600
parents 883d887c6408
children f75ca1b0c81e
comparison
equal deleted inserted replaced
5702:1b914de8d0ba 5703:14789f30ac11
503 data = self.wopener(filename, 'r').read() 503 data = self.wopener(filename, 'r').read()
504 return self._filter("encode", filename, data) 504 return self._filter("encode", filename, data)
505 505
506 def wwrite(self, filename, data, flags): 506 def wwrite(self, filename, data, flags):
507 data = self._filter("decode", filename, data) 507 data = self._filter("decode", filename, data)
508 if "l" in flags: 508 try:
509 self.wopener.symlink(data, filename) 509 os.unlink(self.wjoin(filename))
510 else: 510 except OSError:
511 try: 511 pass
512 if self._link(filename): 512 self.wopener(filename, 'w').write(data)
513 os.unlink(self.wjoin(filename)) 513 util.set_flags(self.wjoin(filename), flags)
514 except OSError:
515 pass
516 self.wopener(filename, 'w').write(data)
517 util.set_exec(self.wjoin(filename), "x" in flags)
518 514
519 def wwritedata(self, filename, data): 515 def wwritedata(self, filename, data):
520 return self._filter("decode", filename, data) 516 return self._filter("decode", filename, data)
521 517
522 def transaction(self): 518 def transaction(self):