equal
deleted
inserted
replaced
175 ca = c.ancestor(c2) |
175 ca = c.ancestor(c2) |
176 if not ca: # unrelated? |
176 if not ca: # unrelated? |
177 continue |
177 continue |
178 # named changed on only one side? |
178 # named changed on only one side? |
179 if ca.path() == c.path() or ca.path() == c2.path(): |
179 if ca.path() == c.path() or ca.path() == c2.path(): |
180 if c == ca or c2 == ca: # no merge needed, ignore copy |
180 if c == ca and c2 == ca: # no merge needed, ignore copy |
181 continue |
181 continue |
182 copy[c.path()] = of |
182 copy[c.path()] = of |
183 |
183 |
184 if not repo.ui.configbool("merge", "followcopies", True): |
184 if not repo.ui.configbool("merge", "followcopies", True): |
185 return {}, {} |
185 return {}, {} |
252 |
252 |
253 return copy, diverge |
253 return copy, diverge |
254 |
254 |
255 def symmetricdifference(repo, rev1, rev2): |
255 def symmetricdifference(repo, rev1, rev2): |
256 """symmetric difference of the sets of ancestors of rev1 and rev2 |
256 """symmetric difference of the sets of ancestors of rev1 and rev2 |
257 |
257 |
258 I.e. revisions that are ancestors of rev1 or rev2, but not both. |
258 I.e. revisions that are ancestors of rev1 or rev2, but not both. |
259 """ |
259 """ |
260 # basic idea: |
260 # basic idea: |
261 # - mark rev1 and rev2 with different colors |
261 # - mark rev1 and rev2 with different colors |
262 # - walk the graph in topological order with the help of a heap; |
262 # - walk the graph in topological order with the help of a heap; |