Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have an application that has a back-end database (tables, procedures, database specific dlls) and front-end (application logic and UI) that separate people are working on. I was wondering what's the best way to organize it in my repository (I'm using GIT).

The options I see are:

  • all-in-one repository
  • submodules of main repository
  • two separate repositories
  • other?

Any suggestions are welcome.

share|improve this question

I'd go for option 2

submodules of main repository

This keeps the two projects separate (to a degree) and easy to get individually, but clearly shows that they are related.

It shouldn't affect how each group accesses "their" part of the solution.

share|improve this answer
Can you elaborate on the idea of submodules of main repository? – Chris Jan 27 '11 at 14:06
@Chris - not really ;) It just seems to represent (or perhaps) how I see the structure in my head/hard drive. I know you can use mappings to put things where you like, but this seems to keep everything "tidy". – ChrisF Jan 27 '11 at 14:10
in GIT submodules are like projects within another project. You can commit to the submodule only (it has it's own separate commit log) and the main repository only notices fact of the change in the submodule (not what exactly changed). Great explanation can be found in the free ProGit book - – kyrisu Jan 27 '11 at 16:19
@kyrisu: Thanks for the link, appreciated. – Chris Jan 27 '11 at 18:09

two separate repositories

They have nothing to do with each other.

Data lasts for ever and is high-value, an asset to the organization.

Applications come and go. Keep application logic away from database definitions.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.