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) + |