equal
deleted
inserted
replaced
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) |