After adopting Kiln a year or so back, I've been sticking to the convention of having one source control project per one visual studio project. While I find this keeps the commits nice and simple and the source control project very focused, its starting to lead to a LOT of commits for what's essentially one change.
Example: One of my visual studio solutions is setup like this:
- App.Core (service layer)
- App.Core.Tests( testing layer)
- App.Web.Core (controllers )
- App.Web.UI (views/js/etc..)
- App.Web.Admin (administrative site for the web)
- App.Web.Tests (testing layer)
- App.ChromeExtension
Eventually I'll be adding an andriod and iphone view layer as well (probably monotouch/monodriod)
Say I add a feature on the service layer side that required an update to the interface, I then have to propagate that change through the various web methods and maybe even the chrome extension. That's pretty straight-forward, but it could mean me having to do up to 7 different commits for what's essentially a single "change". It also means pulling a lot of changes for other developers or for myself when I switch to/from my laptop.
Can someone who's dealt with large projects comment on what the "best" approach is here? Do I stick with the multiple source control projects so each commit tree is super concise and deal with the overhead? Do I stick everything in a single source control project for simplicity? Do I do a hybrid where I merge anything web related into one project, and anything service related into another project? Or something else?
For reference: the project is maintained by a UX developer and myself, but that could easily change in future.
(also: I wasn't sure if this was programmers or stackoverflow worthy, and decided to go here instead. If a mod wants to move it I've no objection.)
Thanks!