Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/hg.py @ 277:79279550c8ff
merge: update permissions even if file contents didn't change
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
merge: update permissions even if file contents didn't change
manifest hash: f24ed7970c6ca48329a7aa9c2037d96333f7172e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCpz0PywK+sNU5EO8RArOMAJ9CImCJMdubq5HsB3KrxOt1EG7PEgCgpPWg
lnVxviZhv31EHtnxujQBoqM=
=qxYq
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Wed, 08 Jun 2005 10:46:39 -0800 |
parents | 10e325db7347 |
children | 5edd24db6dc7 |
comparison
equal
deleted
inserted
replaced
276:10e325db7347 | 277:79279550c8ff |
---|---|
894 for f in d: | 894 for f in d: |
895 if f in mw: del mw[f] | 895 if f in mw: del mw[f] |
896 | 896 |
897 for f, n in mw.iteritems(): | 897 for f, n in mw.iteritems(): |
898 if f in m2: | 898 if f in m2: |
899 s = 0 | |
900 | |
899 if n != m2[f]: | 901 if n != m2[f]: |
900 a = ma.get(f, nullid) | 902 a = ma.get(f, nullid) |
901 if n != a and m2[f] != a: | 903 if n != a and m2[f] != a: |
902 self.ui.debug(" %s versions differ, resolve\n" % f) | 904 self.ui.debug(" %s versions differ, resolve\n" % f) |
903 merge[f] = (m1.get(f, nullid), m2[f]) | 905 merge[f] = (m1.get(f, nullid), m2[f]) |
904 # merge executable bits | 906 # merge executable bits |
905 # "if we changed or they changed, change in merge" | 907 # "if we changed or they changed, change in merge" |
906 a, b, c = mfa.get(f, 0), mfw[f], mf2[f] | 908 a, b, c = mfa.get(f, 0), mfw[f], mf2[f] |
907 mode = ((a^b) | (a^c)) ^ a | 909 mode = ((a^b) | (a^c)) ^ a |
908 merge[f] = (m1.get(f, nullid), m2[f], mode) | 910 merge[f] = (m1.get(f, nullid), m2[f], mode) |
911 s = 1 | |
909 elif m2[f] != a: | 912 elif m2[f] != a: |
910 self.ui.debug(" remote %s is newer, get\n" % f) | 913 self.ui.debug(" remote %s is newer, get\n" % f) |
911 get[f] = m2[f] | 914 get[f] = m2[f] |
915 s = 1 | |
916 | |
917 if not s and mfw[f] != mf2[f]: | |
918 if force: | |
919 self.ui.debug(" updating permissions for %s\n" % f) | |
920 set_exec(self.wjoin(f), mf2[f]) | |
921 else: | |
922 a, b, c = mfa.get(f, 0), mfw[f], mf2[f] | |
923 mode = ((a^b) | (a^c)) ^ a | |
924 print a, b, c, mode | |
925 if mode != b: | |
926 self.ui.debug(" updating permissions for %s\n" % f) | |
927 set_exec(self.wjoin(f), mode) | |
928 | |
912 del m2[f] | 929 del m2[f] |
913 elif f in ma: | 930 elif f in ma: |
914 if not force and n != ma[f]: | 931 if not force and n != ma[f]: |
915 r = self.ui.prompt( | 932 r = self.ui.prompt( |
916 (" local changed %s which remote deleted\n" % f) + | 933 (" local changed %s which remote deleted\n" % f) + |