• D
    Automatic text-based merging of divergent edits made to linked files during... · abf56b54
    dpoeschl 提交于
    Automatic text-based merging of divergent edits made to linked files during Workspace.TryApplyChanges.
    
    Changes that are easily merged because they are identical or isolated (a change span that overlaps no other change spans in any linked document) are simply updated to reflect the new text. In the case of isolated changes, - we assume that the change happened in a #if region and it is therefore safe to apply the change.
    
    Once these straightforward changes are applied, the remaining changes which cannot be easily merged because they conflict with another edit are added to the final text in a commented form. If we start with a reference to a class C but a refactoring fully qualifies it as "A.B.C" in one linked document but as "B.C" in another, the following comment is emitted into source:
    
    /* Unmerged change from project 'ProjectName'
    Before:
    C
    After:
    B.C
    */
    A.B.C
    
    This change also prevents the Preview Changes dialog from showing multiple copies of linked documents. (changeset 1295841)
    abf56b54
Workspace.cs 47.8 KB