Stream Merge FAQS

In the Update wizard can I update a work area from a stream that is different to the stream associated with the work area?

No. In Dimensions CM 14.x there are different Update and Merge operations. Use Update to update a work area from its associated stream. Use Merge to merge changes from another stream, a baseline, or a request.

Can I merge from an older stream version?

Yes. Dimensions CM 14.x introduces the concept of stream versions. You can select any version of the source stream to merge from.

merge_from_str_version.png

 

Can I merge into an older version of a stream?

No. Streams assume a single line of descent and no internal branching. To work on, or merge into, a specific stream version create a new stream based on that version of the stream.

Can I merge part of a stream, or ignore specific files, and merge them later?

Yes. You can limit the scope of a merge operation to specific folders or manually ignore files or folders. However, you may be required to resolve some refactoring conflicts again during subsequent merge operations. The following example illustrates the difference between changesets for partial and full merges:

ChangeSetsWithPartialMergeSmaller.png

Should I always update a work area before I merge?

Yes. To minimize the possibility of unexpected conflicts when delivering merged changes it is best practice to update a work area before merging, or create a new work area for the merge. You can avoid conflicts when delivering by locking the stream you are merging to, however that may not be possible when multiple developers are working in parallel on a stream. Keeping your work area up to date also enables you to safely build and test the most recent content of a stream before delivering merged files.

Two streams have the same item located in different paths but the Merge operation does not detect the difference.

The previous resolution of the path conflict for this item was probably Use local. Subsequent merges use this resolution and do not detect a difference. If you merge the changes in the opposite direction the path will be applied without indicating a conflict, as it was previously resolved. To avoid this situation when you are not certain what the final path for a conflict should be, choose the resolution Ignore. You can resolve the conflict during a subsequent merge.

If you have already merged an item and applied the resolution Use local, to change the resolution at the next merge rename the file locally in your work area. This problem also occurs with other types of refactoring conflicts, for example, an item is deleted in one stream and moved in another.

I have merged streams but there are still differences, why?

A merge operation is performed in one direction; you apply the changes from one stream to another. To synchronize streams you need to perform merges in both directions in separate operations.

Check if the resolution Ignore, or the wrong exclusion filters, have been used during a merge or deliver operation.

When merging two streams multiple conflicts are detected with the description "File was locally added and conflicts with a new repository file of the same name". The conflict persist even after streams have been merged. Why does this happen and how do I resolve it?

This problem occurs when files with the same name were delivered in two independent streams, for example, by copying them using Windows Explorer to separate work areas (or another method that does not use a Dimensions CM client). The correct way to copy or import files across two streams is to use the Merge operation. Otherwise Dimensions CM treats these files as different items with their own history and pedigree, even though their paths overlap.

To resolve this conflict delete one of the local copies of the duplicate item, deliver the deletion to the repository, and then import the same item from the other stream using the merge operation.

I have integrated my preferred file merge tool. However, while merging files across two streams I often overwrite changes from other developers with older contents of the source code. How do I avoid this problem?

This may happen if you use a two-way merge tool. Typically these only display repository and local file revisions and cannot identify which conflicting changes to accept during conflict resolution, especially when changes are applied by other developers. The best practice is to use a three-way merge tool that can display the common ancestor revision of merged files and compare the contents of the ancestor with that of the merged files.

Check that your three-way merge tool is configured to display all files, not just the common ancestor.

In the Merge wizard I have resolved a conflict using the Merge resolution but the work area file is unchanged.

Until you click Merge to perform a merge operation, merged files are stored in a temporary location to protect your work area from partially merged results.

When should I use the option Apply repository date and time?

Many build systems rely on the modification timestamp of a file to decide if it should be rebuilt. To ensure that imported or merged revisions have their modification time updated and are captured by the build, do not select this option.

Select this option only if you need to preserve the original (repository) date and time of the merge.

I have upgraded my Dimensions CM client to 14.2. Can I continue to work with work areas populated with version 12.2.2 or earlier?

Before you upgrade from 12.2.2 or earlier, deliver any local changes to your repository.

After you upgrade use new work areas populated by 14.2 clients. If you cannot recreate new work area you can convert your pre-14.2 work area by running the recursive non-interactive Update or Get operations. You cannot merge into a work area populated by a pre-14.2 client until it is converted to 14.2.

If a work area, which contains local changes that conflict with a repository, cannot be converted do one of the following:

How can I restore content that was deleted by mistake from another stream, or baseline, and is not detected during a merge operation?

Use the MERGE command with the /OVERWRITE parameter to override the changes in the stream associated with the work area with the content of the stream you are merging from. For example, to restore the folder "test" in the stream "MY_FEATURE" from the baseline "MY_FEATURE_SPRINT8" use the following command:

MERGE /USER_DIRECTORY=C:\MY_FEATURE /DIR=test
/BASELINE=MY_FEATURE_SPRINT8 /OVERWRITE

Dialog Boxes