diff -r 0dbcf3c9ff20 -r 91c9fd6a7c70 mercurial/hg.py --- a/mercurial/hg.py Thu Jun 09 08:53:07 2005 +0100 +++ b/mercurial/hg.py Thu Jun 09 09:24:08 2005 +0100 @@ -18,7 +18,12 @@ s = os.stat(f).st_mode if (s & 0100 != 0) == mode: return - os.chmod(f, s & 0666 | (mode * 0111)) + if mode: + umask = os.umask(0) + os.umask(umask) + os.chmod(f, s | (s & 0444) >> 2 & ~umask) + else: + os.chmod(f, s & 0666) class filelog(revlog): def __init__(self, opener, path):