Show More
@@ -304,6 +304,28 b' def _combinecopies(copyfrom, copyto, fin' | |||
|
304 | 304 | |
|
305 | 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 | 329 | Find moves and copies between context c1 and c2 that are relevant |
|
308 | 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