Freigeben über


TFS Integration Platform – MergeScope: Question & Answer 10

In post TFS Integration Platform – Configuration: Question & Answer 9 we introduced snippets from the Pioneer Dogfood configuration files. P7070160 Some of the eagle vision readers noticed another feature that we have not explained yet … MergeScope, as highlighted in the snippet from the snippet below:

“Rosie” … the Eagle in Dullstroom, sponsored by my son Jacques, who has the same serious facial expression.

image 

Why was this feature necessary?  

Merge operations, especially at the root level, are expensive and slow.

What does this feature do?

The feature allows us to ignore potentially large forward integration (FI) and reverse integration (RI) merge changes between branches.

How does it work?

The MergeScope feature scopes the merge, which means that any merges that are under the mapped path will be processed, whereas the ones outside of the scope will be ignored

It means that for any merges under the mapped path, the merge from path must be within the path specified by the MergeScope, otherwise the action is ignored.  In addition, if the path is out of MergeScope a Branch action will be changed to an Add and a Merge|Edit action to an Edit action.

Example:

  1. A merge from $/Dev/feature/BranchTools/SampleFrom to $/Dev/feature/BranchTools/SampleTo is within scope as per line 25/26 above and will be performed as a merge action.
  2. A forward integration merge from $/Main/feature/BranchTools/SampleFrom to $/Dev/feature/BranchTools/SampleTo is not within scope and will be skipped (ignored).

Thanks Pei, for the information!

Comments

  • Anonymous
    November 30, 2011
    This is really ambiguous - in the example the migration source has exactly the same name as the migration target. So does the mergescope apply on the source only, or the target only, or to both but only when they have the same name? What happens if we apply mergescope the source but not to the target? Or the other way around? Can somebody please clarify this.

  • Anonymous
    December 01, 2011
    I assume you mean that the MergeScope paths are identical on the source and target in the example? You have to configure the MergeScope on the source side where it is used to determine the action to be taken during the preparation phase (Analysis). If you are setting up a directional sync you would need to define the merge scope on both sides, as is the case in the above example.