##// END OF EJS Templates
merge: simplify file revision comparison logic
Matt Mackall -
r8752:f177bdab default
parent child Browse files
Show More
@@ -174,22 +174,16 b' def manifestmerge(repo, p1, p2, pa, over'
174 continue
174 continue
175 if f in m2:
175 if f in m2:
176 rflags = fmerge(f, f, f)
176 rflags = fmerge(f, f, f)
177 # are files different?
177 a = ma.get(f, nullid)
178 if n != m2[f]:
178 if n == m2[f] or m2[f] == a: # same or local newer
179 a = ma.get(f, nullid)
179 if m1.flags(f) != rflags:
180 # is remote's version newer?
180 act("update permissions", "e", f, rflags)
181 if m2[f] != a:
181 elif n == a: # remote newer
182 # are both different from the ancestor?
182 act("remote is newer", "g", f, rflags)
183 if n != a:
183 else: # both changed
184 act("versions differ", "m", f, f, f, rflags, False)
184 act("versions differ", "m", f, f, f, rflags, False)
185 else:
185 elif f in copied: # files we'll deal with on m2 side
186 act("remote is newer", "g", f, rflags)
186 pass
187 continue
188 # contents don't need updating, check mode bits
189 if m1.flags(f) != rflags:
190 act("update permissions", "e", f, rflags)
191 elif f in copied:
192 continue
193 elif f in copy:
187 elif f in copy:
194 f2 = copy[f]
188 f2 = copy[f]
195 if f2 not in m2: # directory rename
189 if f2 not in m2: # directory rename
@@ -215,9 +209,7 b' def manifestmerge(repo, p1, p2, pa, over'
215 for f, n in m2.iteritems():
209 for f, n in m2.iteritems():
216 if partial and not partial(f):
210 if partial and not partial(f):
217 continue
211 continue
218 if f in m1:
212 if f in m1 or f in copied: # files already visited
219 continue
220 if f in copied:
221 continue
213 continue
222 if f in copy:
214 if f in copy:
223 f2 = copy[f]
215 f2 = copy[f]
General Comments 0
You need to be logged in to leave comments. Login now