equal
deleted
inserted
replaced
178 ca = c.ancestor(c2) |
178 ca = c.ancestor(c2) |
179 if not ca: # unrelated? |
179 if not ca: # unrelated? |
180 continue |
180 continue |
181 # named changed on only one side? |
181 # named changed on only one side? |
182 if ca.path() == c.path() or ca.path() == c2.path(): |
182 if ca.path() == c.path() or ca.path() == c2.path(): |
183 if c == ca or c2 == ca: # no merge needed, ignore copy |
183 if c == ca and c2 == ca: # no merge needed, ignore copy |
184 continue |
184 continue |
185 copy[c.path()] = of |
185 copy[c.path()] = of |
186 |
186 |
187 if not repo.ui.configbool("merge", "followcopies", True): |
187 if not repo.ui.configbool("merge", "followcopies", True): |
188 return {}, {} |
188 return {}, {} |
278 |
278 |
279 return copy, diverge |
279 return copy, diverge |
280 |
280 |
281 def symmetricdifference(repo, rev1, rev2): |
281 def symmetricdifference(repo, rev1, rev2): |
282 """symmetric difference of the sets of ancestors of rev1 and rev2 |
282 """symmetric difference of the sets of ancestors of rev1 and rev2 |
283 |
283 |
284 I.e. revisions that are ancestors of rev1 or rev2, but not both. |
284 I.e. revisions that are ancestors of rev1 or rev2, but not both. |
285 """ |
285 """ |
286 # basic idea: |
286 # basic idea: |
287 # - mark rev1 and rev2 with different colors |
287 # - mark rev1 and rev2 with different colors |
288 # - walk the graph in topological order with the help of a heap; |
288 # - walk the graph in topological order with the help of a heap; |