Mercurial > hg > mercurial-crew-with-dirclash
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) |