Merging Between Versions

Versions

When a change is submitted in a version it will be marked as a pending merge for any child versions. For example if you submit a change in 'Version 1' then the change will be a pending merge for 'Version 2'. This is typically what you want - where a change submitted in an earlier version is merged into all later versions.

Note

This is implemented by creating a merge rule from the parent version to the child version when the child version is created. This is described in the section called “Merge Rules”.

This does not apply the other way round. If you submit a change in 'Version 2' it will not be a pending merge for 'Version 1'. The whole reason you created 'Version 2' was to submit changes which are not submitted in 'Version 1' so it does not make sense to merge every 'Version 2' change back into 'Version 1'. You can still merge specific changes from 'Version 2' into 'Version 1' as described in the section called “Merging Changesets”.

Pending Changes in the Projects View

After a change has been submitted in the parent version a pending changeset will be created in the child version. The child version will appear with a red cross to indicate it has one or more pending changesets.

Figure 5.1. Version with Pending Changes

Version with Pending Changes

You can right-click the version and select 'Show Pending Changes' to list the pending changesets. From here you can merge the changes as described below.

Pending Changes in the My Tasks View

The owner of the child version will see a pending change in the My Tasks view under Pending Changes. You can change the owner of a version as described in the section called “Versions”. You can set the owner of a version to be a group so all members of the group will see the pending merges.

Figure 5.2. Pending Changes

Pending Changes

The 'Name' column shows the version with the pending changes. The 'Count' column shows how many changes are required to be merged. Press 'Show' to display a list of all the changes which are due to be merged into this version.

Merging Pending Changes

Figure 5.3. Pending Changes

Pending Changes

The 'Source Stream' will be the parent version in which the change was submitted. The 'Destination Stream' will be the child version. The 'Ref No', 'Description', 'Client' and 'Date' give the details of the original change submitted in the parent version.

Right-click on a pending change and select 'Merge' to merge it to the child version. This will ask if you want PureCM to automatically merge the changeset. PureCM will only automatically merge the changeset if the files have not been changed in the child version. Otherwise the Resolve Tool will be launched the same as if you selected 'No'.

Figure 5.4. Resolve Tool

Resolve Tool

The Resolve Tool is described in detail in the User Guide 'File Conflicts' section. When you have resolved all conflicts press the 'Submit' button to merge the change into the child version.

You can merge multiple pending changes by selecting them in the pending changesets list and selecting 'Merge'. If you choose to automatically merge the changes then they will be merged as separate changesets. If you choose to manually merge the changes then the changes will be combined into a single changeset which will appear in the Resolve Tool. It is generally recommended not to combine multiple changes in this way as it makes the merge more complex and more difficult to track.

Right-click on a pending change and select 'Move to Unmerged' to remove it from the pending list without merging the changeset. You should do this if you do not want to merge the change now but might want to merge it in the future.

Right-click on a pending change and select 'Exclude Change' to remove it from the pending list without merging the changeset. You should do this if you will never want to merge this change to the child version.

Note

If you go to the Merging view you will see the merge rule for the parent->child version. Within the rule you will see the changes appear as 'Pending Changesets' and can perform the same operations as above. This is described in more detail in the section called “Merge Rules”.