It's all about the answers!

Ask a question

migrating ClearCase UCM multicomponent vobs with intervob l


David Sedlock (16122012) | asked Jul 28 '09, 11:11 a.m.
I'm evaluating a possible move to RTC from ClearCase UCM. Migrating the existing codebase, while maintaining the existing components, is required. We use multicomponent vobs with intervob links, so the top-level file structure in a CC view is crucial.

Here is a typical example, components marked with *. (I understand symbolic links are not currently supported - but are a top priority).


<view_root>
vob1
comp1*
file1.txt
dir1
vob2
comp2*
file1.txt -> ../../../vob1/comp1/file1.txt
file2.txt
dir1 -> ../../../vob1/comp1/dir1
dir


I thought view_root would be the elipse project workspace in RTC. But I just can't figure out how to do this.

I would be very grateful if somebody can show me a (painless) way to set up this structure.

Regards,
David

22 answers



permanent link
Geoffrey Clemm (30.1k33035) | answered Jul 28 '09, 4:38 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
On a terminology note, when you say "the eclipse project workspace in
RTC", I assume you mean the "RTC repository workspace sandbox" (a set of
files loaded from an RTC repository workspace onto the client machine).

In order to get the files loaded in the structure you describe below,
you would need to use the Eclipse UI to load the files the way you
describe below. In particular:
- load the repository workspace into your pending changes view (load
just the workspace, none of the files).
- select "show -> repository files" on the workspace
- select each component (in Jazz), and use "load as" to specify the
pathname under which it should be loaded into the sandbox.

Unfortunately, you cannot (in RTC-2.0) tell the build system to load the
files in this way (at least, not easily ... you probably could do it via
scripting and the scm command line).

SCM or Build Team: Is there a better way than scm command line scripting
to handle this in RTC 2.0?

Cheers,
Geoff

David.Sedlock.infineon.com wrote:
I'm evaluating a possible move to RTC from ClearCase UCM. Migrating
the existing codebase, while maintaining the existing components, is
required. We use multicomponent vobs with intervob links, so the
top-level file structure in a CC view is crucial.

Here is a typical example, components marked with *. (I understand
symbolic links are not currently supported - but are a top
priority).


view_root
vob1
comp1*
file1.txt
dir1
vob2
comp2*
file1.txt -> ../../../vob1/comp1/file1.txt
file2.txt
dir1 -> ../../../vob1/comp1/dir1
dir


I thought view_root would be the elipse project workspace in RTC. But
I just can't figure out how to do this.

I would be very grateful if somebody can show me a (painless) way to
set up this structure.

Regards,
David

permanent link
Geoffrey Clemm (30.1k33035) | answered Jul 29 '09, 11:41 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Note: I've gotten confirmation that you should be able to use the Jazz
SCM command line to do this loading (in particular, "scm load -t").

There also is work item 85020 which asks that the build load rules be
extended to allow you to specify where the components are loaded, so
that you don't need to script it via the command line.

Cheers,
Geoff

Geoffrey Clemm wrote:
On a terminology note, when you say "the eclipse project workspace in
RTC", I assume you mean the "RTC repository workspace sandbox" (a set of
files loaded from an RTC repository workspace onto the client machine).

In order to get the files loaded in the structure you describe below,
you would need to use the Eclipse UI to load the files the way you
describe below. In particular:
- load the repository workspace into your pending changes view (load
just the workspace, none of the files).
- select "show -> repository files" on the workspace
- select each component (in Jazz), and use "load as" to specify the
pathname under which it should be loaded into the sandbox.

Unfortunately, you cannot (in RTC-2.0) tell the build system to load the
files in this way (at least, not easily ... you probably could do it via
scripting and the scm command line).

SCM or Build Team: Is there a better way than scm command line scripting
to handle this in RTC 2.0?

Cheers,
Geoff

David.Sedlock.infineon.com wrote:
I'm evaluating a possible move to RTC from ClearCase UCM. Migrating
the existing codebase, while maintaining the existing components, is
required. We use multicomponent vobs with intervob links, so the
top-level file structure in a CC view is crucial.

Here is a typical example, components marked with *. (I understand
symbolic links are not currently supported - but are a top
priority).


view_root
vob1
comp1* file1.txt
dir1
vob2
comp2* file1.txt -
../../../vob1/comp1/file1.txt file2.txt
dir1 -> ../../../vob1/comp1/dir1
dir


I thought view_root would be the elipse project workspace in RTC. But
I just can't figure out how to do this.

I would be very grateful if somebody can show me a (painless) way to
set up this structure.

Regards,
David

permanent link
David Sedlock (16122012) | answered Aug 03 '09, 5:53 a.m.
I could set up one repository workspace with the correct structure. I delivered the changes to the stream. But now when I create a new repository workspace in the stream (as if I were a different developer or the same developer with a different task), the structure is wrong; components are at the workspace level. The vob level has been forgotten:

workspace
comp1
comp2

In fact, simply unloading the workspace in which I set up the structure and loading it again destroys the structure.

Any ideas? We obviously can't have people creating local file structures and loading components into them by hand. The files have to come out of the stream, into the eclipse workspace, in the right structure.

A few other questions:

1) Suppose I am working on different tasks flowing into the same RTC stream, which I want to keep separate. In UCM I would create two development streams and work in two views. Do I need to have different eclipse workspaces and keep more than one eclipse running for this? Seems awkward for a standard use case. Or is there a way to load different repository workspaces in one eclipse workspace?

2) How do I simply add a file to a component (CC "add to source control")? I created a file in the workspace, but it doesn't show up anywhere in the GUI. I can't find any doc about how to do something this simple, so I must be missing something obvious...

permanent link
Geoffrey Clemm (30.1k33035) | answered Aug 03 '09, 9:25 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
David.Sedlock.infineon.com wrote:
I could set up one repository workspace with the correct structure. I
delivered the changes to the stream. But now when I create a new
repository workspace in the stream (as if I were a different
developer or the same developer with a different task), the structure
is wrong; components are at the workspace level. The vob level has
been forgotten:

workspace
comp1
comp2

In fact, simply unloading the workspace in which I set up the
structure and loading it again destroys the structure.

Any ideas? We obviously can't have people creating local file
structures and loading components into them by hand. The files have
to come out of the stream, into the eclipse workspace, in the right
structure.

Yes, I agree this is a problem. The work item to get this fixed is
85020. Please add your comments/support to that work item ... it is not
currently scheduled for RTC-3.0.

A few other questions:

1) Suppose I am working on different tasks flowing into the same RTC
stream, which I want to keep separate. In UCM I would create two
development streams and work in two views. Do I need to have
different eclipse workspaces and keep more than one eclipse running
for this? Seems awkward for a standard use case. Or is there a way to
load different repository workspaces in one eclipse workspace?

In RTC, you can easily keep two tasks separate in a single repository
workspace (and a single Eclipse workspace) by "suspending" one of the
tasks while you are working on the other one.

You can also load different repository workspaces into a single Eclipse
workspace, but you are constrained by standard Eclipse rules that you
can only have a single project loaded with a given name, so if your two
tasks affect the same Eclipse project, you could not have that project
loaded from two different repository workspaces at the same time.

So the first approach (suspending/resuming tasks) is likely to be the
approach you'll want to use.

2) How do I simply add a file to a component (CC "add to source
control")? I created a file in the workspace, but it doesn't
show up anywhere in the GUI. I can't find any doc about how to do
something this simple, so I must be missing something obvious...

New files should show up in your Pending changes view. You would just
use "checkin" to put them under source control.

Cheers,
Geoff

permanent link
Geoffrey Clemm (30.1k33035) | answered Aug 03 '09, 10:51 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
A correction to my comment below.
Although work item 85020 is not currently scheduled for RTC-3.0, the
general work item that should address this issue (work item 44004) is
currently scheduled for RTC-3.0.

Geoffrey Clemm wrote:
David.Sedlock.infineon.com wrote:
I could set up one repository workspace with the correct structure. I
delivered the changes to the stream. But now when I create a new
repository workspace in the stream (as if I were a different
developer or the same developer with a different task), the structure
is wrong; components are at the workspace level. The vob level has
been forgotten:

workspace
comp1
comp2

In fact, simply unloading the workspace in which I set up the
structure and loading it again destroys the structure.

Any ideas? We obviously can't have people creating local file
structures and loading components into them by hand. The files have
to come out of the stream, into the eclipse workspace, in the right
structure.

Yes, I agree this is a problem. The work item to get this fixed is
85020. Please add your comments/support to that work item ... it is not
currently scheduled for RTC-3.0.

A few other questions:

1) Suppose I am working on different tasks flowing into the same RTC
stream, which I want to keep separate. In UCM I would create two
development streams and work in two views. Do I need to have
different eclipse workspaces and keep more than one eclipse running
for this? Seems awkward for a standard use case. Or is there a way to
load different repository workspaces in one eclipse workspace?

In RTC, you can easily keep two tasks separate in a single repository
workspace (and a single Eclipse workspace) by "suspending" one of the
tasks while you are working on the other one.

You can also load different repository workspaces into a single Eclipse
workspace, but you are constrained by standard Eclipse rules that you
can only have a single project loaded with a given name, so if your two
tasks affect the same Eclipse project, you could not have that project
loaded from two different repository workspaces at the same time.

So the first approach (suspending/resuming tasks) is likely to be the
approach you'll want to use.

2) How do I simply add a file to a component (CC "add to source
control")? I created a file in the workspace, but it doesn't
show up anywhere in the GUI. I can't find any doc about how to do
something this simple, so I must be missing something obvious...

New files should show up in your Pending changes view. You would just
use "checkin" to put them under source control.

Cheers,
Geoff

permanent link
Geoffrey Clemm (30.1k33035) | answered Aug 03 '09, 1:17 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
David has indicated that his new files are not showing up in his pending
changes view, even after trying all 3 options under Refresh.

I've posted this to the forum, in case someone has seen this (and has a
fix :-).

David: Could you enumerate the sequence of steps you used to "load" that
component into your Eclipse workspace?

Cheers,
Geoff

Geoffrey Clemm wrote:
David.Sedlock.infineon.com wrote:

2) How do I simply add a file to a component (CC "add to source
control")? I created a file in the workspace, but it doesn't
show up anywhere in the GUI. I can't find any doc about how to do
something this simple, so I must be missing something obvious...

New files should show up in your Pending changes view. You would just
use "checkin" to put them under source control.

Cheers,
Geoff

permanent link
David Sedlock (16122012) | answered Aug 04 '09, 3:44 a.m.

You can also load different repository workspaces into a single Eclipse
workspace, but you are constrained by standard Eclipse rules that you
can only have a single project loaded with a given name, so if your two
tasks affect the same Eclipse project, you could not have that project
loaded from two different repository workspaces at the same time.

So the first approach (suspending/resuming tasks) is likely to be the
approach you'll want to use.


The "standard Eclipse rules" indicate to my mind that Eclipse doesn't take account of CM concepts. Developers often have to work on different configurations of the same set of components - say, the mainline and one configuration or more bug fix releases. The constraint that you can have at most one configuration loaded in a workspace is weird. I've seen this also with the CC Eclipse plugin, with the consequence that you end up with at least two Eclipses runninng, one for the development view, the other for the integration view - which are indistinguishable in the Windows task bar and hence require you to shuffle through them to find the right one!

As for suspending/resuming tasks, this is clearly useful for handling different tasks in one line of development - say, the mainline - but is unlikely to work well for working on, say, the mainline and a bug fix release at the same time, where the latter naturally has its own stream.

Question about suspending/resuming tasks: Does RTC take account of change set dependencies and suspend/resume for the full transitive closure of the dependencies, perhaps with the flexibility that the developer can overrule when he knows better?

permanent link
David Sedlock (16122012) | answered Aug 04 '09, 3:54 a.m.
I load the work space as follows:

1) Select repository workspace "test2" in Team Artifacts/My Repository Workspaces.

2) Select Load and "Find and load Eclipse Projects".

3) Leave default options unchanged in "Load Eclipse Projects".

4) Create new file in comp1.

5) Select Refresh in "Pending Changes" - tried all 3 variants.

New file never shows up.

permanent link
Geoffrey Clemm (30.1k33035) | answered Aug 04 '09, 8:48 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Comments interspersed below:

David.Sedlock.infineon.com wrote:
You can also load different repository workspaces into a single
Eclipse
workspace, but you are constrained by standard Eclipse rules that
you
can only have a single project loaded with a given name, so if your
two
tasks affect the same Eclipse project, you could not have that
project
loaded from two different repository workspaces at the same time.

So the first approach (suspending/resuming tasks) is likely to be
the
approach you'll want to use.

The "standard Eclipse rules" indicate to my mind that
Eclipse doesn't take account of CM concepts. Developers often have to
work on different configurations of the same set of components - say,
the mainline and one configuration or more bug fix releases. The
constraint that you can have at most one configuration loaded in a
workspace is weird. I've seen this also with the CC Eclipse plugin,
with the consequence that you end up with at least two Eclipses
runninng, one for the development view, the other for the integration
view - which are indistinguishable in the Windows task bar and hence
require you to shuffle through them to find the right one!

Note: This is an Eclipse issue rather than an RTC issue, so if one
wanted any change in this behavior, we'd need to open a thread/request
in www.eclipse.org, but since this topic does come up a fair amount in
an SCM context, it does make sense to discuss here.

When Eclipse is used as an IDE, one of the main purposes of an Eclipse
workspace is to maintain a semantic context for testing/debugging. So
logically you cannot have two copies of a particular semantic construct
loaded into the same Eclipse workspace, because then the tester/debugger
wouldn't know which version to test/debug.

When Eclipse is just being used as an editor, then there are times when
you'd like to be able to browse through multiple configurations in the
same search request. So you could post such a request on www.eclipse.org.

WRT distinguishing which different instances of Eclipse in the Windows
task bar, I believe there are ways to add information to the popups on
those task bar entries, but I'll defer to the Eclipse experts for how
exactly to achieve that.

As for suspending/resuming tasks, this is clearly useful for handling
different tasks in one line of development - say, the mainline - but
is unlikely to work well for working on, say, the mainline and a bug
fix release at the same time, where the latter naturally has its own
stream.

Yes, if the two different tasks are in two different streams, then you'd
want to use two different Eclipse workspaces (which you'd need in any
case to do any testing/debugging of your tasks before delivering them).

Question about suspending/resuming tasks: Does RTC take account of
change set dependencies and suspend/resume for the full transitive
closure of the dependencies, perhaps with the flexibility that the
developer can overrule when he knows better?

RTC enforces the dependencies that it can compute from the version trees
(i.e. you cannot suspend a change set if it contains the predecessor
version of another change set that you want to keep). To allow you to
override those rules, RTC gives you the ability to create a "patch" for
any change set, which you can then apply to your workspace.

Cheers,
Geoff

permanent link
Geoffrey Clemm (30.1k33035) | answered Aug 04 '09, 9:53 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
After step 2, what projects were found and loaded?
In step 4, how did you create the new file in comp1?
In particular, was the new file in one of the projects loaded in step 2?

Cheers,
Geoff

David.Sedlock.infineon.com wrote:
I load the work space as follows:

1) Select repository workspace "test2" in Team Artifacts/My
Repository Workspaces.

2) Select Load and "Find and load Eclipse Projects".

3) Leave default options unchanged in "Load Eclipse
Projects".

4) Create new file in comp1.

5) Select Refresh in "Pending Changes" - tried all 3
variants.

New file never shows up.

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.