diff mercurial/localrepo.py @ 6884:11229144aa01

merge with crew-stable
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Tue, 12 Aug 2008 17:47:08 +0200
parents 077f1e637cd8 1d38f3605b20
children 7c36a4fb05a3
line wrap: on
line diff
--- a/mercurial/localrepo.py	Sun Aug 10 18:38:43 2008 -0500
+++ b/mercurial/localrepo.py	Tue Aug 12 17:47:08 2008 +0200
@@ -544,8 +544,12 @@
             os.unlink(self.wjoin(filename))
         except OSError:
             pass
-        self.wopener(filename, 'w').write(data)
-        util.set_flags(self.wjoin(filename), flags)
+        if 'l' in flags:
+            self.wopener.symlink(data, filename)
+        else:
+            self.wopener(filename, 'w').write(data)
+            if 'x' in flags:
+                util.set_flags(self.wjoin(filename), False, True)
 
     def wwritedata(self, filename, data):
         return self._filter("decode", filename, data)