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
This commit is contained in:
Matt Mackall 2007-12-27 22:27:47 -06:00
parent 717ff7e6f8
commit 49c18f282e
3 changed files with 6 additions and 30 deletions

View File

@ -505,16 +505,12 @@ class localrepository(repo.repository):
def wwrite(self, filename, data, flags):
data = self._filter("decode", filename, data)
if "l" in flags:
self.wopener.symlink(data, filename)
else:
try:
if self._link(filename):
os.unlink(self.wjoin(filename))
except OSError:
pass
self.wopener(filename, 'w').write(data)
util.set_exec(self.wjoin(filename), "x" in flags)
try:
os.unlink(self.wjoin(filename))
except OSError:
pass
self.wopener(filename, 'w').write(data)
util.set_flags(self.wjoin(filename), flags)
def wwritedata(self, filename, data):
return self._filter("decode", filename, data)

View File

@ -1,17 +0,0 @@
#!/bin/sh
HG=hg
"$HG" init
mkdir b
echo 'Bouncy' >b/bouncy
echo 'tricycle' >b/vehicle
"$HG" add b/bouncy
"$HG" add b/vehicle
"$HG" commit -m 'Adding bouncy'
echo 'bouncy' >>b/bouncy
"$HG" commit -m 'Making it bouncier'
"$HG" update -C 0
echo 'stationary' >>b/vehicle
"$HG" commit -m 'Clarifying the vehicle.'
"$HG" update -C 1
chmod a-w b/vehicle
"$HG" merge 2 2>&1 | sed 's|^\(.*[ ]\).*/\([^/]*/[^/]*/[^/]*\)$|\1\2|g'

View File

@ -1,3 +0,0 @@
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
abort: Permission denied: test-ro-message/b/vehicle