Question

I have a system that's broken down to three different programming languages: C#, C++ and Java. The first two are managed in two separate Visual Studio solutions, the latter in an Eclipse project.

I would like to manage the source code for all three using a distributed version control system solution (DVCS). Specifically Mercurial.

Which of the following options would be better: A. Have a single repository containing all the system's source code. Each of the 3 "language oriented" projects to reside in a different sub-folder.

B. Have one repository for each language oriented project. Totaling 3 independent repositories.

In both options I plan on managing the repository/ies by alternating between Visual Studio (TortoiseHg) and Eclipse (MercurialEclipse).

Thanks in advance, urig

Was it helpful?

Solution

With a DVCS, a repository is generally tied to a "component", ie a coherent set of files which evolve as a all unit: if you modify one file, you will tag all the files.

So if you three set of files (one for each language) can evolve independently one from another (for example, one being at a version 1.2 while the other is at 3.4), then it is best to consider a separate repo for each group of files.
You can then group those repos as submodules, in a more "component-based approach".

If they are closely tied together, one modification in one group triggering modifications in the other groups of files, then one repo with separate directory is fine.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top