It's all about the answers!

Ask a question

Build using two components with a common root directory?


Jesse Hill (1111) | asked Nov 10 '08, 1:18 p.m.
In order to play nicely with a legacy clearcase system, our project needs to ensure that all of our files live under a predefined root directory. We'd like to split the files between multiple components, but our build is failing due to the overlap:

2008-11-10 10:24:36 Should build occur?
Checking for changes incoming to workspace "Build Workspace" ... found changes (5)
2008-11-10 10:24:36 Yes: Pre-build participant "com.ibm.team.build.jazzscm" would like to build.
2008-11-10 10:24:37 Invoking pre-build participant "com.ibm.team.build.jazzscm"
Accepting changes into workspace "Build Workspace" ...
Fetching files to fetch destination "/home/jazz/buildsystem/buildengine/eclipse" ...
com.ibm.team.build.internal.scm.SourceControlUtility$2: Status ERROR: com.ibm.team.filesystem.client code=2 Folders to load overlap other contents null children=
at com.ibm.team.build.internal.scm.SourceControlUtility.updateFileCopyArea(SourceControlUtility.java:285)
at com.ibm.team.build.internal.engine.JazzScmPreBuildParticipant.preBuild(JazzScmPreBuildParticipant.java:152)
at com.ibm.team.build.internal.engine.BuildLoop.invokePreBuildParticipants(BuildLoop.java:570)
at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:426)
at java.lang.Thread.run(Thread.java:619)


Is there a workaround for this? Our structure is basically:

/component1/commonDir/project1
/component2/commonDir/project2

And I've tried using component load rules to specify something like:

RootFolderName=/commonDir/project1

in the component1 load rules and:

RootFolderName=/commonDir/project2

in the component2 load rules. With these rules, I get the slightly different error:

2008-11-10 10:55:10 Should build occur?
2008-11-10 10:55:10 Yes: Always build a user initiated request.
2008-11-10 10:55:10 Invoking pre-build participant "com.ibm.team.build.jazzscm"
Accepting changes into workspace "Build Workspace" ...
Deleting fetch destination "/home/jazz/buildsystem/buildengine/eclipse/workspace" before fetching ...
Fetching files to fetch destination "/home/jazz/buildsystem/buildengine/eclipse/workspace" ...
com.ibm.team.build.internal.scm.SourceControlUtility$2: Status WARNING: com.ibm.team.filesystem.client code=2 Loading the directories in the file system would overwrite/remove existing directories. null children=
at com.ibm.team.build.internal.scm.SourceControlUtility.updateFileCopyArea(SourceControlUtility.java:285)
at com.ibm.team.build.internal.engine.JazzScmPreBuildParticipant.preBuild(JazzScmPreBuildParticipant.java:152)
at com.ibm.team.build.internal.engine.BuildLoop.invokePreBuildParticipants(BuildLoop.java:570)
at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:426)
at java.lang.Thread.run(Thread.java:619)

Wondering if there are other tricks to try or if this is not supported currently.

Thanks very much,
Jesse

2 answers



permanent link
Jesse Hill (1111) | answered Nov 11 '08, 9:43 a.m.
To clarify - it's fine for our jazz build to check all the folders out with no overlap. So:

/component1/commonDir/project1
/component2/commonDir/project2

Could be checked out to:

/workspace/project1
/workspace/project2

I haven't been able to configure the component load rules to make this happen yet.

permanent link
Jesse Hill (1111) | answered Nov 11 '08, 2:26 p.m.
I resolved this by creating a stream for each of my components, and then a third for my build script. The build scripts use teamFetch to download the two components two sub-dirs to avoid the collision. They then use the project code in the sub-dirs to complete the build.

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.