Can't find default stream when rebasing development stream - version-control

When I go to rebase my development stream with the latest baseline, the current integration stream does not automatically show up. Instead I get a list of all the available streams. When I select the integration stream from the list, I get the following error:
Because this stream has no default stream from which to retrieve
recommended baselines, the baseline list has been seeded with
the stream's current foundation baselines.
To proceed, you'll need to edit the baseline list directly.
(Click 'Advanced' to view/edit the baseline list.)
When I go to Project Explorer, and look at recommended baselines, everything shows up correctly.
This had been working correctly historically. What can I do to set the default stream back to the integration stream?

I didn't saw that error message before, but a workaround would be to:
rename the current child stream (which no longer has the right default parent),
make an new child stream from the integration stream, and rebasing it with the right baseline from its default parent (the integration stream),
make the first child stream (the one with the issue) obsolete,
go on from there.

I can't offer much by way of explanation, but something did magically fix it.
Normally I rebase by right clicking on the development stream and selecting "Rebase Stream...". This was not working. However, Going to Toolbox > UCM > Rebase Stream seemed to kick it into gear.
Not Working
Working
Hopefully that fixes it for some other person. If not, you can go with VonC's answer.

Related

Will "Deliver Stream" connect my local code to a ClearCase stream?

I am trying to connect my code to a ClearCase Stream. Currently I'm operating under the belief that, once connected to ClearCase, the "Deliver Stream" activity from the drop-down menu will perform this task.
However, all the literature I have read is just vague enough that it isn't clear if this will overwrite the code that is currently in that stream, or if that code will overwrite the code that is currently in my workspace.
I do not want to lose my workspace code, nor do I want to overwrite my ClearCase code if I can help it.
Will this "Deliver Stream" activity do either of these things? And, more importantly, will it actually connect my code to source control?
If not, and this is really the heart of my question, then how do I connect my RAD 7.5 workspace to a ClearCase source controlled file sharing system?
It won't affect your workspace, but I would recommend doing those operations outside of RAD first, to be sure of what is actually taking place:
I am trying to connect my code to a ClearCase Stream
First: is your code versioned in ClearCase in the first place: is your workspace part of a (snapshot) ClearCase view attached to an UCM Stream?
If not, you need to create an UCM dynamic view attached to the right stream, and use clearfsimport to add your files.
Once the import is done, create a snapshot view on the same stream to be used in RAD (since, as I mentioned in your previous question, dynamic views aren't well suited for compilation)
if this will overwrite the code that is currently in that stream, or if that code will overwrite the code that is currently in my workspace
A Deliver Stream is about:
deliver and integrate change sets to the integration stream once an activity has been completed.
For example, if your task was to create a new feature A, you can deliver a change set relating only to new feature A into the integration stream.
That means your current workspace represents a snapshot view loaded and attached to a child stream "FeatureA", and "Deliver Stream" would trigger an UCM deliver between your current (child-)stream FeatureA and the parent Integration stream.
See more at "Integration stream vs integration view in ClearCase".
If you do a "Deliver Stream" from RAD:
As you deliver your changes to a stream, we suggest that you have two different instances of Rational Application Developer open:
one workspace will have your development workspace which contains the complete changes,
and the other will have the integration workspace open.
If you invoke the Deliver Stream option from the integration workspace, your changes automatically appear in the workspace.
If you deliver from your development workspace, you will have modified the file system outside of Rational Application Developer.

How to see all the changes by one developer in ClearCase?

I am trying to look into a project and see all the changes that has been done by a specific developer. Is this possible with ClearCase?
(I only have access to the repository through ClearTeam Explorer, I don't have command line access to it. I appreciate if you keep that in mind as well answering my question)
You can try and use the ClearTeam Navigator view in order to display all UCM activities for a given stream: that should be enough to sort those by author and see that way all changes done were by a specific user.
Selecting an activity would allow you to see its change set (list of versions created and recorded for said activity).

ClearCase automatic merge deletes team members' code

We are using ClearCase using a single Dev stream for our team, without 'locking' (Unreserved check outs).
ClearCase client version: 7.1.1
ClearCase server version: 7.0.1.2
We have performed the same test, without using the "Graphic merge". This option worked as expected! Maybe this can shed some light on past defects on ClearCase or workarounds.
This means that 2 or more people can make edits to the same file at once, without having to wait for for the file to be checked in.
We have seen a few cases of weird behaviour and experimented a bit today to find the following scenario that takes place:
File.txt is checked out by 2 team members.
Each members makes a change in the file (in other regions of the file).
First developer checks in the code to ClearCase, no problems here.
Second developer checks in, gets a merge popup notification.
When selecting "graphic merge", ClearCase in this case informs that all merges were done automatically and no additional input is needed from the developer.
Looking a little further, the first check in was removed (deleted), keeping only the later check in changes.
Why is this happening? This is causing our team to lose code on several occasions already. Are we doing something unsafe/wrong ?
Edit: Illustrating the problem with images of the issue:
The file Manager.cs is at version 27.
Two developers are checking it out.
One made a change, checked in.
The other checks in, gets the merge notification.
This is what i see in the graphical merge:
Note that on the left is version 27, in the middle version 28 (the latest checked in version), and on the right is the result which is dropping version 28's code change !
Why is this happening automatically??
Image can also be seen here: Image
Note: if you are using ClearCase without 'locking', that means you are doing unreserved checkouts (and not reserved checkout).
If you select "graphic merge", you should see a Windows helping you to reconcile the merge, even if there is no conflict.
Such a merge should not delete any previous checkins: it might cancel the previous modifications, only if all the new changes are selected, but if you have the graphical merge window open, you can control how the merge is applied.
For your past problematic merges, you can easily from the version tree re-apply the merge from the previous version of dev1 to the LATEST version, in order to reapply those canceled changes.
Since my initial answer 4 days ago, 2 new information came about:
ClearCase client version: 7.1.1 ClearCase server version: 7.0.1.2.
That is never good to have a client with a version more recent than the server.
We have performed the same test, without using the "Graphic merge". This option worked as expected!
That would be consistent with some discrepancies already seen between the GUI for merging and the pure command line (as in this other scenario).
When the GUI fails, always try to fall back on the pure CLI (Command Line Interface).

Clearing commit message in Eclipse (while using Mylyn)

No matter what I do, I cannot seem to get Mylyn to stop inserting a commit message based on a Task even though that task is no longer active and closed. I've tried restarting the app, I've tried activating and inactivating tasks (which seems to simply change the commit message, although this is not consistent).
Switching to different perspectives also does not resolve the problem.
There must be some switch somewhere that I am neglecting to turn off. Please help me fix it!
Summary: Mylyn automatically creates meaningful commit messages based on the tasks you've worked on. To disable them see the Disabling section below.
Disabling: To disable Mylyn's commit messages go to Preferences -> Tasks -> Team and remove all content from the Commit Comment Template.
Details: Mylyn commit messages are automatically generated by using your context to determine which tasks where active when you changed the set of files you are about to commit. Thus, if you had the task implement the submit button active when you changed the file Submit.java then when you commit Submit.java the commit message will automatically be filled in with implement the submit button and a link to that task. Here's an example of a filled in commit message for the task improve upon associations prototype:
Many people find this more convenient than having to copy and paste from your task or type in a commit message yourself. Additionally, there are several advantages to having the commit message filled in by Mylyn, such as having traceability back to the task and having correct annotations. Here's an example of the traceability that having Mylyn-generated commit messages allows. You can see that the code annotations have links directly back to the tasks.
See this article for further details and advantages: Mastering Change-Sets
David Shepherd, Tasktop Technologies http://www.twitter.com/davidcshepherd
Go to Preferences -> Tasks -> Team : clear the Commit Comment Template

Eclipse + Perforce: Is it possible to avoid interrupting a build to check out a file?

This may be somewhat obscure but I've been happily using Eclipse + Perfoce/P4WSAD for over a year now and have thus far been unable to figure this out myself. I often start a build and let it run in the background while I continue to edit source files. The problem occurs when I try to edit a file that is not checked out from perforce. In this case, eclipse pops up a modal dialog box that forces me to choose between either canceling the build or canceling the check-out operation. So usually I just cancel the build, check out the file, and start the build up again, but this is very time consuming. Is it possible to get eclipse to allow check-outs during builds?
I don't know, but you may want to check with Perforce on this (as this might be something specific to their plugin rather than something in the team su8pport), I never have this problem with SVN or CVS (though maybe my builds are not big enough). Also from what I understand the first generation Perforce plugin had major problems, but they have a new one that's much better. You should make sure you are on the new one.
A simple solution (although it can be disk-space consuming) is to have a building branch on which you merge any of your recently committed development (simple merges with no conflicts: you overwrite what is on the build branch).
Another eclipse project references that build branch sources and builds it whenever you want, while you edit the sources of your first original project.