mercurial/localrepo.py
changeset 6062 3c3b126e5619
parent 6058 88b4d726332a
child 6065 53ed9b40cfc4
--- a/mercurial/localrepo.py	Sat Feb 09 20:17:09 2008 +0100
+++ b/mercurial/localrepo.py	Sat Feb 09 18:38:54 2008 -0200
@@ -68,8 +68,20 @@
             self.encodefn = lambda x: x
             self.decodefn = lambda x: x
             self.spath = self.path
-        self.sopener = util.encodedopener(util.opener(self.spath),
-                                          self.encodefn)
+
+        try:
+            # files in .hg/ will be created using this mode
+            mode = os.stat(self.spath).st_mode
+            # avoid some useless chmods
+            if (0777 & ~util._umask) == (0777 & mode):
+                mode = None
+        except OSError:
+            mode = None
+
+        self.opener.createmode = mode
+        sopener = util.opener(self.spath)
+        sopener.createmode = mode
+        self.sopener = util.encodedopener(sopener, self.encodefn)
 
         self.ui = ui.ui(parentui=parentui)
         try: