The process of merging changes from a development path to the mainline is somewhat complicated, and dependant on if you utilize the Change Package functionality of Source, as well as what views and menu options you have set Visible in your Integrity Client. To aid in understanding the merge process, this blog goes over the specific steps you'd need to follow. This process requires knowledge of Change Packages.
Let's get started!
Step 1 – create a sandbox against the mainline
To merge your changes from a Development Path to the main line you need to first create a sandbox against the target location (the mainline). To do this:
1. Navigate to Project > View Projects
2. Select the desired project from the Projects View > Sandbox > Create Sandbox
3. The Sandbox Creation Wizard will ask you to specify a location for your Sandbox – select the desired location on your local disk, or create a new folder > Next
4. The Project Name will already be populated as we selected it in step 2 – click Next
5. Select Normal (mainline) > Finish
*Note: If any of the above menu options are not appearing for you, you need to go to Viewset > Customize and set the appropriate actions to visible.
Step 2 – use Resynchronize Change Package
The next step is to use the Resynchronize Change Package option to pull the changes from your variant (also called a Development Path) into that sandbox. To do this:
1. Select the sandbox we created from the steps above > Change Package > Resynchronize
*Note: When you select Resynchronize Change Package and you have a sandbox currently selected in the Integrity Client, the Resync operation will be performed for that sandbox. If you do the Resync with something other than a sandbox selected (for example a project), a dialogue box will pop up asking you to pick a sandbox.
2. If you know the ID’s of the change packages that contain the changes you wish to merge, type them in the Add to List box and click Add. If you don’t know the ID’s of the change packages, click Find – you’ll be presented with various ways to find the change packages (by the user who created them, by their summary, etc.)
3. At the bottom of the Resynchronize Change Packages window, click Create to create a Propagation Change Package. You will be prompted to specify a Summary and Description, and depending on your server’s configuration, you may also be asked to Choose an Integrity Item – this is used when you want to tie source code changes to Integrity items, for example a Defect (that way, when you look at the Defect item in Integrity, it has a list of CP’s that contain the code fixes for that the Defect, for visibility purposes). Click OK to create your Propagation Change Package. Take note of the ID of the Propagation Change Package.
4. Click Finish to Resync your change packages and bring the changes into your sandbox.
Step 3 – Submit the Propagation Change Package
1. If there are no errors or warnings during the Resync operation, we’re ready to Submit the Propagation Change package. Navigate to Change Package > View My Change Packages and locate the Propagation Change Package we created in step 3 above. Right-click the Change Package > Submit Change Package.
*Note: If you'd like to verify what changes will take place before comitting anythig, look over the propagation change package before comitting doing the Submit.
You have now successfully performed the merge from variant to main line!
You might have noticed that these instructions require the changes to your source members on the variant to be done through Change Packages – so what if you’re not using Change Packages? Well, then the ‘merging’ needs to be done entirely manually – as in, figure out what source members need to be updated and created, and manually add the archives and update the existing archives to match what’s on your development path. For any followup questions you may have, please open a case with Integrity Support.
regarding the "resyncCP" and "merge child development path" command usage, you need to be aware of one problem:
>> during the analysis of the "source" development path, 'update archive' entries are treated just like 'update' entries. !
The result of that is, that you are likely to find revisions of files in your sandbox (or proposed merges to revisions) that are not actually used in the development path.