Gogo-the-Cat
Gogo-the-Cat

Reputation: 57

Git, Two Repositories in One Solution

We have two projects written with c# on Visiual Studio, let's name them A and B. Both of these can be used as seperate products. Bu B can be integrated to A or to other products as a module. We were using SVN but now we are switching to Git with VSTS(azure devops).

We mostly develop B project while we develop A project, in the same solution.

Is there any way to set these repos seperately and commit changes of both projects in same branch with out switching solutions?

What is the right strategy we should use to manage this situation?

Upvotes: 0

Views: 348

Answers (2)

Tomas Aschan
Tomas Aschan

Reputation: 60574

As an alternative to the submodules approach, you might want to consider a monorepo approach; in other words, keeping both projects in the same git repository.

There is nothing in Git (or Visual Studio, for that matter) that requires you to use the repository's root folder as your working directory when working with the code in the repo, so your current developer workflow within each individual project could probably work just fine. You also get the benefit that working on B and A in the same solution will feel very natural.

Depending on your team structure, etc, there are of course drawbacks as well (for example, without good discipline it can be cumbersome to be very many people working in the same repository), so don't see this as a "silver bullet" - see it as one of many possible solutions to your problem; evaluate them and pick one based on what seems like it would work for you (and switch again if it didn't work out).

Upvotes: 1

kowsky
kowsky

Reputation: 14459

We solve this using git submodules. A submodule is a separate git repository inside another git repository. You commit separately in both repositorys, and the parent repository "remembers" which commit of the submodule repository it currently points to.

You can find plenty of documentation about submodules, e.g. in the pro git book. There are some pitfalls, but if you once get the workflow, it's a good approach for your problem.

Git Subtrees might be an alternative.

Upvotes: 1

Related Questions