Solution with multiple projects and (GitHub) single issue tracker and repository

by Luiz Damim   Last Updated October 22, 2017 15:05 PM

I have a Visual Studio solution with multiple projects:

  • Acme.Core
  • Acme.Core.Tests
  • Acme.UI.MvcSite1
  • Acme.UI.MvcSite2
  • Acme.UI.WinformsApp1
  • Acme.UI.WinformsApp2
  • ...

The entire solution is checked-in in a single GitHub (private) repo. Acme.Core contains our business logic and all UI projects are deployables. UI projects have different requirements and features, but some of them are implemented in more than one project.

All issues are opened in a single issue tracker and classified using labels ([MvcSite1], [WinformsApp1], etc) but I'm thinking it's starting to get messy.

Is it ok to use a single repository and issue tracker to track multiple projects in one solution?

Answers 3

Certainly -- why would visual studio's fundamental unit be a solution if this weren't the case?

Wyatt Barnett
Wyatt Barnett
May 02, 2013 11:33 AM

Re-using the issue tracker should be fine, as long as you're tagging the issues properly so that it's easy to differentiate between projects.

Re-using the same repository is more convoluted. The advantage to this approach is removing potentially extravagant merges. On the other hand, it may become more difficult to deploy to test environments unless you can push branches out. Maybe the worst case I can think of in that scenario is if you introduce a major bug in one project, and while resolving it, require a rollback that wipes out changes made in other projects. I would think your best bet is to compartmentalize your code as best as you can and use separate repositories.

October 31, 2013 04:38 AM

Git doesn't scale. Git is fast, and awesome in handle huge repositories, but it doesn't scale very well. Therefor most projects using git has one repo for each project (not like svn where you can have one repo for the whole company and then have one path for each project).

The one project-one repo is quite fundamental in git's design and hence github is also built with the one project - one repo in mind.

It's of course fine to have multiple projects in one repo, until you hit the ceiling. If you think your bugtracker is too confusing and you rather treated the projects separately, then you've hit the ceiling and you really should divide your repo to one repo for each project.

You should probably look closer into git submodules (the pro-git book has a chapter about them) then you want to read up on git filter-branch on how to divide your current repo.

If I understand your enviroment correctly you would benefit from the power of submodules, that will make you able to do complicated configurations.

October 31, 2013 07:42 AM

Related Questions

GitHub - Should I unassign an issue once closed

Updated July 17, 2017 15:05 PM

How do we control which features get released?

Updated July 15, 2015 17:02 PM

TODOs in Checked in Code

Updated July 30, 2015 14:02 PM