Manual Code Merge?
![]()
Alan D (156●3●13●11)
| asked Sep 15 '10, 9:51 a.m.
retagged Jun 24 '14, 9:50 a.m. by David Lafreniere (4.8k●7)
Why does RTC not allow you to perform a manual interactive merge between the classes in 2 streams?
I'm promoting a chuck of code for a test delivery and am getting refusals based around a couple of classes. Using the Patch function is *very* time consuming as if I take a change set and patch one of the classes inside it, I need to patch all the classes, which then throws up merge conflicts on any dependent classes in other packages, so I need to patch them, and so on. I've been at this for over 7 hours now and am nowhere near the finish, whereas if I could tell RTC "I know what I'm doing, take this line from file 1, this line from file 2 etc" I'd have had this completed in under an hour. RTC is a great tool in many respects, but this is a major let down. Any ideas? |
11 answers
![]()
Geoffrey Clemm (30.1k●3●30●35)
| answered Sep 15 '10, 7:36 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Can you elaborate on what you mean by "getting refusals"?
Cheers, Geoff On 9/15/2010 9:53 AM, 1.21Jigawatts wrote: Why does RTC not allow you to perform a manual interactive merge |
![]()
Yes
I'm trying to commit a number of change sets from a DEV stream to a test stream. One class is causing RTC to fail the commit as the delivery will introduce gaps in the stream based on this one file. My beef is that I know which version of the file I want, but I can't: 1) perform a manul/interactive merge as I don't think this function exists on RTC 2) I can't replace the file in the Test stream with the latest from the DEV stream I also cannot locate where the gap occured. This left me with the option of performing a patch on the file. However, the change set contains other files, so these needed to be included in the patch. some of these files are mentioned in other change sets, so they need to be patched also. Those change sets also contain other files which.... I've bodged this today by simply replacing the entire component in TEST with the component from the DEV stream which I'm not very comfortable with. |
![]()
Geoffrey Clemm (30.1k●3●30●35)
| answered Sep 25 '10, 12:12 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
You probably want to look at work item 128329 ("Handling accepting
change sets with gaps via patches is complex and loses traceability information"), and add a comment to indicate your interest/support. Cheers, Geoff On 9/16/2010 8:08 AM, 1.21Jigawatts wrote: Yes |
![]()
This tool is now unusable.
I have a file that has had *no changes* since RTC was adopted that needs to be deliverd as an E-Fix to a different stream - the stream will not allow the file to be delivered: "Delivering these changes would introduce gaps in the stream. you are trying to deliver a subset of the outgoing change sets but they need to be delivered together because of dependencies between them". I don't care what RTC says, there are *no* dependencies on this file. Anyway, I cannot deliver all the change sets as some of these are still undergoing testing. Why can't I force a merge - I know what files I need, and what lines in those files I need. This is hopeless. |
![]()
The issue you are hitting is that the deliver workflow does not support
the resolution of gaps or conflicts. What you need to do is create a workspace off of the target stream, load it into the RTC client and accept the change set into this workspace. The client will then indicate that there is a gap and apply the change as a patch. You can then merge the changes into your local workspace, check them into the remote workspace and then deliver to the stream. Michael 1.21Jigawatts wrote: This tool is now unusable. |
![]()
Geoffrey Clemm (30.1k●3●30●35)
| answered Dec 07 '10, 11:53 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Two comments.
- Whenever possible, you want to just deliver a change-set directly from one stream to another ... and not create a patch (a patch is a new copy of the change-set, which introduces traceability issues). The only time you want to create patch is when you have to, and the only time you have to deliver via a patch is when the change set you want to deliver "depends on" another change set that you don't want to deliver. (A change set Y depends on another change set X if Y modifies a file that has previously been modified by X.) You'll know when you have to create a patch when your attempt to deliver the change set results in a "gap error" (the "gap" is the dependent change set that you didn't want to deliver). - There are a couple of bugs with patching that are being fixed in the upcoming 3.0 iFix1 (mostly around a patch that both modifies a file and renames that file). Cheers, Geoff On 12/7/2010 7:23 AM, techforum99 wrote: Hi All |
![]()
Thanks Geoff for the quick reply. I was trying to understand in more detail what you meant by
"Whenever possible, you want to just deliver a change-set directly from one stream to another ... and not create a patch" Were you trying to suggest the following: 1. Instead of creating a Patch as written in Step 4 of my earlier post, just Right+Click on the ChangeSet --> Accept, from the MyProdWkspace into the MyEnhanceWkspace. 2. Then in the Pending Changes view --> Unresolved tree, either Auto-Merge OR Manually merge the files in MyEnhanceWkspace. 3. Then Deliver this Outgoing tree to the MyEnhanceStream Stream. Is this correct? Thanks again! Rahul |
![]()
Geoffrey Clemm (30.1k●3●30●35)
| answered Dec 08 '10, 11:23 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Yes, that is correct.
Cheers, Geoff On 12/8/2010 7:08 AM, techforum99 wrote: Thanks Geoff for the quick reply. I was trying to understand in more |
|