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-----
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -19,6 +19,8 @@ def set_exec(f, mode):
if (s & 0100 != 0) == mode:
return
if mode:
+ # Turn on +x for every +r bit when making a file executable
+ # and obey umask.
umask = os.umask(0)
os.umask(umask)
os.chmod(f, s | (s & 0444) >> 2 & ~umask)
@@ -913,8 +915,10 @@ class localrepository:
if f in m2:
s = 0
+ # are files different?
if n != m2[f]:
a = ma.get(f, nullid)
+ # are both different from the ancestor?
if n != a and m2[f] != a:
self.ui.debug(" %s versions differ, resolve\n" % f)
merge[f] = (m1.get(f, nullid), m2[f])
@@ -924,7 +928,8 @@ class localrepository:
mode = ((a^b) | (a^c)) ^ a
merge[f] = (m1.get(f, nullid), m2[f], mode)
s = 1
- elif m2[f] != a:
+ # is this an unmodified file or are we clobbering?
+ elif mw[f] == m1[f] or force:
self.ui.debug(" remote %s is newer, get\n" % f)
get[f] = m2[f]
s = 1