We're looking to migrate from SVN/Jenkins/Mantis to Stash/Bamboo/JIRA. We typically have 3-5 Java webapps in a project built using Maven, along with one or two .NET Windows apps also built with Maven, and the whole set is released together in a unified deployment.
Should we create a single Stash project with a single Git repo for each project, and a single Bamboo plan to build it all?
Or multiple repositories under a Stash project, one repo per webapp?
The automatic branching features in Stash, Bamboo and JIRA seem to be optimized for a single repo being the common case.
I would say it boils down to answer to 2 simple questions: are webapps from single project often changed together? If you go with single repo per project would the size of it become a problem?
If the answer to first is 'yes' and second 'no' then I would go with single repository.
As you said, branching in Bamboo is optimized for single repository case. I also find it personally much more convienient if I don't have to look for components of single project in 5 different places ;-) But YMMV.
Just to add to Marcin's comment.
This is an area that IMHO still has some room for improvement (you might be interested in this recent blog from a colleague of mine).
Marcin is right - generally tooling, including Stash/Maven/Bamboo/Everything work better with a single repository. The longer you can stick with that the most comfortable off you'll be. There are two places where this becomes a real problem (which is what Marcin is really talking about with 'size' above)
1. You need to 'share' a single repository/library/module/product with more than one repository. At this point you need to use Maven/Git-Submodule/Git-Subtree to 'depend' on the other repository.
2. Build speed - the maven build of a single repository becomes unwieldy/horrible and you want to improve performance.
Again, if you don't have either of those problems then having a single repository is almost always the easiest.
Cheers,
Charles
PS. FWIW I think this is solvable, but we need to ditch Maven first. :)
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.