Build using two components with a common root directory?
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
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
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.
/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.