Hi, we have a project that is quite large and the build has a primary solution and several projects that are dependencies and seperate builds.
so in svn we have
trunk\projA
trunk\projb
trunk\projc
trunk\projd
trunk\proje
trunk\projf
trunk\projg
trunk\projh
trunk\MainProject
trunk\references
i only need to pull down proj a, d,e,f, MainProject and references to build. My nant script that we tell to build Mainproject.sln will build the other 4 projects as dependencies.
What is the best way for me to pull down just the code I want?
so that I have
builddir\proja
builddir\projd
builddir\proje
builddir\projf
builddir\MainProject
builddir\references
and the fire off the Nant script.
You could either set up a separate directory in your SVN repository with externals and use it for plan repository or set up just proja as source repository and checkout other directories with a script task.
Obviously, these are just workarounds - Bamboo 3.3 with native support for multiple repositories (so, exactly what you need) will be out within a month.
Support for Multiple Repositories aside... how do you keep sanity in such a project??! :)
Your build has so many places where things can go wrong. So many dependencies. Are all these depedencies worked on by the same team or different ones?
Clearly defined Producer<->Consumer relationships are a good way to ensure builds are reliable.
BigProjectFoo that depends on componentsA-F should always know what version of these components it's using. BigProjectFoo should make the decision about when to move to a different version of componentC or componentD.
I would have separate builds for Components A thru F. Make sure those are always green.
Then have a 'stable' build of BigProjectFoo with 'release' versions of the components. And maybe a 'latest' build of BigProjectFoo that integrates the latest builds from the component dependencies to identify integration problems early.
All of these you can do through artifact sharing and svn:externals.
Just my .02 as a build engineer...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I think your not understanding the scenario completely.
When we have a svn source tree that has 40 projects under it for the Application set and I only need to pull down 5 of these projects for a particular build, why not pull down just the 5 projects? We dont need the other 35 since it causes more disk space to be used and makes the build take longer.
In addition we have these seperate projects as standalone projects since they are REUSED by other projects. Therefore when we pull down code we need to build these dependencies as well.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.