Show More
@@ -304,6 +304,28 b' def _combinecopies(copyfrom, copyto, fin' | |||||
304 |
|
304 | |||
305 | def mergecopies(repo, c1, c2, base): |
|
305 | def mergecopies(repo, c1, c2, base): | |
306 | """ |
|
306 | """ | |
|
307 | The basic algorithm for copytracing. Copytracing is used in commands like | |||
|
308 | rebase, merge, unshelve, etc to merge files that were moved/ copied in one | |||
|
309 | merge parent and modified in another. For example: | |||
|
310 | ||||
|
311 | o ---> 4 another commit | |||
|
312 | | | |||
|
313 | | o ---> 3 commit that modifies a.txt | |||
|
314 | | / | |||
|
315 | o / ---> 2 commit that moves a.txt to b.txt | |||
|
316 | |/ | |||
|
317 | o ---> 1 merge base | |||
|
318 | ||||
|
319 | If we try to rebase revision 3 on revision 4, since there is no a.txt in | |||
|
320 | revision 4, and if user have copytrace disabled, we prints the following | |||
|
321 | message: | |||
|
322 | ||||
|
323 | ```other changed <file> which local deleted``` | |||
|
324 | ||||
|
325 | If copytrace is enabled, this function finds all the new files that were | |||
|
326 | added from merge base up to the top commit (here 4), and for each file it | |||
|
327 | checks if this file was copied from another file (a.txt in the above case). | |||
|
328 | ||||
307 | Find moves and copies between context c1 and c2 that are relevant |
|
329 | Find moves and copies between context c1 and c2 that are relevant | |
308 | for merging. 'base' will be used as the merge base. |
|
330 | for merging. 'base' will be used as the merge base. | |
309 |
|
331 |
General Comments 0
You need to be logged in to leave comments.
Login now