It's all about the answers!

Ask a question

Resolving conflict with "evil twins" (missing folders and files)


Leonardo Marzo (24964852) | asked May 16 '14, 9:53 a.m.
 Hi, 

I´ll describe a scenario that we usually face; I will appreciate your help. 

User 1 creates the following structure of folders and files, and deliver it to STREAM A:
folderParent
   folderChild
      file1.txt

User 2 creates the same structure (same names), but delivers it to STREAM B

User 2  modifies file1.txt and delivers a new change set to STREAM B

User 1 tries to accept ONLY the change set that modifies the file1.txt but in STREAM A.

These are the steps that I follow and the error messages that I get:
- I have a workspace with all the change sets of STREAM A
- Change flow target of my workspace to STREAM B
- Right click on the change set that that modifies file1.txt and click Accept
- The tool Gap Workflow Editor is opened
- In the node CHanges of the Changes to Merge, I have the messages (File Missing)(Parent Missing) --> that's true since they are evil twins. 
- Click Merge

- I choose 'Set Parent Folder'
- I choose folder 'folderChild'
- I get this error:
"Parent '/folderParent/folderChild' has multiple children with the name 'file1.txt"

So it seems that I´m not able to merge these changes. Is this a supported scenario for RTC? Or I have to  remove the file in Stream A and merge the changes manually? (And as a consequence, I´ll loose the history of file1.txt in Stream A). 

I have read the article https://jazz.net/library/article/39 but it didn't help me. 

I´ll really appreciate your help.


Thanks!




One answer



permanent link
Tim Mok (6.6k38) | answered May 16 '14, 11:18 a.m.
JAZZ DEVELOPER
You can accept the other change sets that fill the gap from stream B to resolve the evil twin conflict first. You'll want to resolve with the changes from stream A to keep the history of the changes in stream A. Then accept the second change set from stream B and resolve a second evil twin conflict. You can manually resolve the merges to bring in the changes and preserve stream A history on the file.

Remember, you're resolving an evil twin conflict so be aware that the resolution is essentially making you choose which history to continue and build upon. The other file1.txt's history still exists but can't be shown at the same time in the history view.

Comments
Leonardo Marzo commented May 16 '14, 2:58 p.m. | edited Jul 02 '14, 6:33 p.m.

 Thank you for your response Tim!. 


The problem is that the change sets that fill the gap from stream B can contain many files that I don't want to deliver to Stream A. So, It's ok to accept all the incoming changes to the workspace. But then, I want to deliver ONLY the change set that modifies file1.txt. Is that possible? 


Leonardo Marzo commented May 16 '14, 3:12 p.m.

And also, the change sets that fill the gap probably will contain lines that I don't want to merge.  


Tim Mok commented May 16 '14, 3:47 p.m.
JAZZ DEVELOPER

If you don't want some other added files from stream B, you would have to remove them after accepting the change set. Accepting that change set is the only thing I can think of that would work. You can't accept a part of a change set.

I can't think of anything else that you can currently do to get around the gap + evil twin conflict. If anything can be done to do this without accepting the gap filling change set, it would need a patch so that you can fix both issues at the same time when you perform the gap merge. You could try going through IBM support and see if this can be fixed with a patch.


Leonardo Marzo commented May 16 '14, 4:33 p.m.

So, could you confirm that gap + evil twin conflict is not a supported scenario?  


David Lafreniere commented Jun 25 '14, 3:00 p.m. | edited Jun 25 '14, 3:14 p.m.
FORUM MODERATOR / JAZZ DEVELOPER

When there are evil twins, we do not offer to perform a content merge since they are really different files. You can only choose to keep the file that is on disk, or the file that is incoming. If you want to keep your file, simply click 'Ignore" in the dialog. If you want to keep what is 'incoming', delete the file 'folderParent/folderChild/file1.txt' that is on disk and check-in the 'deletion change' into the gap 'resulting change set'. Now in the "Missing File and Parent" dialog you posted above, you can select "Set Parent Folder" and select the 'folderParent/folderChild' directory. This will not result in the error you saw before..

<continue reading my comment below> (The restriction on the # of characters per comment is annoying.


David Lafreniere commented Jun 25 '14, 3:00 p.m.
FORUM MODERATOR / JAZZ DEVELOPER

If you want to actually compare the differences and do a merge (although the fact that they are actually different files implies the content may not even be similar), instead of deleting file1.txt, rename it to file1MINE.txt and check-in that change. Now select "Set Parent Folder" and select the 'folderParent/folderChild' director. Now you have the two files on disk, in the same folder. In the "Package Explorer" in Eclipse, you can select both files, right-click and select "Compare With" --> "Each Other". This will open up a compare editor and show you the differences, and it will also have each side editable (so you can choose which one you actually want to keep). I would keep the file that is in the stream you intent to flow to, and then delete the other file when done. (checking-in the changes and deletion of the file you don't want into the resulting change set).

showing 5 of 6 show 1 more comments

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.