comparison mercurial/hg.py @ 299:7c239fad0f27

Merge with TAH -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Merge with TAH manifest hash: 5a7d047acc6df6ba03db532657f54c0d38e4cffe -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD4DBQFCqIECywK+sNU5EO8RAg56AJ95hB6uw7Fc55XgwgZls4UUNRt1jACYrkrq V9VJhhv29Fd/LEZy+ydoGQ== =unEK -----END PGP SIGNATURE-----
author mpm@selenic.com
date Thu, 09 Jun 2005 09:48:50 -0800
parents a3d83bf86755 91c9fd6a7c70
children 498fb0fa2795 f06a4a3b86a7
comparison
equal deleted inserted replaced
296:a3d83bf86755 299:7c239fad0f27
16 16
17 def set_exec(f, mode): 17 def set_exec(f, mode):
18 s = os.stat(f).st_mode 18 s = os.stat(f).st_mode
19 if (s & 0100 != 0) == mode: 19 if (s & 0100 != 0) == mode:
20 return 20 return
21 os.chmod(f, s & 0666 | (mode * 0111)) 21 if mode:
22 # Turn on +x for every +r bit when making a file executable
23 # and obey umask.
24 umask = os.umask(0)
25 os.umask(umask)
26 os.chmod(f, s | (s & 0444) >> 2 & ~umask)
27 else:
28 os.chmod(f, s & 0666)
22 29
23 class filelog(revlog): 30 class filelog(revlog):
24 def __init__(self, opener, path): 31 def __init__(self, opener, path):
25 revlog.__init__(self, opener, 32 revlog.__init__(self, opener,
26 os.path.join("data", path + ".i"), 33 os.path.join("data", path + ".i"),
1001 self.ui.note("getting %s\n" % f) 1008 self.ui.note("getting %s\n" % f)
1002 t = self.file(f).read(get[f]) 1009 t = self.file(f).read(get[f])
1003 try: 1010 try:
1004 self.wfile(f, "w").write(t) 1011 self.wfile(f, "w").write(t)
1005 except IOError: 1012 except IOError:
1006 os.makedirs(os.path.dirname(wp)) 1013 os.makedirs(os.path.dirname(self.wjoin(f)))
1007 self.wfile(f, "w").write(t) 1014 self.wfile(f, "w").write(t)
1008 set_exec(self.wjoin(f), mf2[f]) 1015 set_exec(self.wjoin(f), mf2[f])
1009 self.dirstate.update([f], mode) 1016 self.dirstate.update([f], mode)
1010 1017
1011 # merge the tricky bits 1018 # merge the tricky bits
1013 files.sort() 1020 files.sort()
1014 for f in files: 1021 for f in files:
1015 self.ui.status("merging %s\n" % f) 1022 self.ui.status("merging %s\n" % f)
1016 m, o, flag = merge[f] 1023 m, o, flag = merge[f]
1017 self.merge3(f, m, o) 1024 self.merge3(f, m, o)
1018 set_exec(wp, flag) 1025 set_exec(self.wjoin(f), flag)
1019 self.dirstate.update([f], 'm') 1026 self.dirstate.update([f], 'm')
1020 1027
1021 for f in remove: 1028 for f in remove:
1022 self.ui.note("removing %s\n" % f) 1029 self.ui.note("removing %s\n" % f)
1023 os.unlink(f) 1030 os.unlink(f)