tags:

views:

628

answers:

1

Hi,

I have 3 projects A, B based on A, C based on A.

Changes A should first be merged to B and then from B to C. There are also changes in B not affecting A but some of this changed need to be merged in C.

There some changes from A which have been incorrectly merged directly from A to C bypassing B. (I'm using the word "merged" because we needed to merge those manually because automatic delivery would include a bunch of activities we don't need to deliver to B and C).

To fix the problem I now need to merge the changes which have been not merged in B but have been merged in C in B and I'm looking for a way to list all the versions in C which have been created by merging from A so that I can merged the changes for those files into B.

Thanks

+2  A: 

list all the versions in C which have been created by merging from A

Those versions should be listed in the merge activity you has to create when you merged directly from A to C (using findmerge, I presume).

The only problem is, did you create a special "merge" activity during that findmerge?
You may just have reused the current activity on C, meaning that activity would contain versions from the current work on C, plus the versions merged from A.

The other approach would be to merge the same activities (the ones concerned by the findmerge from A to C) from A to B.
The next "normal" merge from B to C would:

  • do nothing for files already merged from A (since they have also been merged to B according this "other approach"
  • merge evolutions from B to C for any other modified files.


I didn't use it for these merges, did it from the GUI version tree tool creating identical activities in C for corresponding activities in A and merged file by file.

Unless you have only one or two files to merge, findmerge is the command to use, because:

  • it can takes into account one or several activities
  • and it is not bound by the same "activities dependencies" than the ones enforced with a deliver or a rebase UCM operation.

In short, findmerge is your classical merge, able to read versions within UCM activities, but does a non-UCM merge (no hyperlink between UCM baselines).

VonC
Thank you! This findmerge command solves the problem in the question and also looks like a great time saver for selective merging operations which cannot be done with the UCM deliver!
axk
Just one more question: How does findmerge determine which versions to merge? Is it a plain compare operation of the lates versions in the source branch with the current versions of the same elements in the destination view or is it something more complex involving the version relationships? Is it possible that it would claim a merge for two identical versions (the same element with identical content)? Thanks!
axk
VonC