--- 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: