# New to git, related multi-projects

2 messages from 2007-08-29 to 2007-08-29. Participants: Jean-François Veillette, Alex Riesen.
Thread: https://gitlist.dev/t/9695

## Jean-François Veillette, 2007-08-29 18:18

Subject: New to git, related multi-projects
Message-ID: <7F6E024B-253E-40C6-9012-9CF1B2F374D8@yahoo.ca>
URL: https://gitlist.dev/e/7F6E024B-253E-40C6-9012-9CF1B2F374D8%40yahoo.ca

```
Here is my setup, please briefly tell me what would be the suggested  
git configuration.

The company currently use cvs, it has a cvs tree where the first  
directory level is per client, the second directory level is the  
project, then inside it we have the many artifacts, like :
cvsserver/Shared/Documentation/PresentationTemplate.doc
cvsserver/Shared/Documentation/AnalysisTemplate.doc
cvsserver/Shared/Devel/CommonLib/*
cvsserver/ClientA/ProjectA/Doc/Presentation.doc
cvsserver/ClientA/ProjectA/Doc/Analysis.doc
cvsserver/ClientA/ProjectA/Dev/ApplicationA/*
cvsserver/ClientA/ProjectA/Dev/ApplicationB/*
cvsserver/ClientA/ProjectA/Dev/ApplicationC/*
cvsserver/ClientA/ProjectA/Dev/LibraryA/*
cvsserver/ClientA/ProjectA/Dev/LibraryB/*

What would be the best way to represent a similar setup in git ?
I was thinking of having a repository at the project level, and add  
atomic  subdirectories (code for applications and libraries for  
example)  as submodules.
If submodule are the right way to go, can a submodule, include a  
submodule, for example, ApplicationA use LibraryA and CommonLib ?

Thanks,

- jfv

```

## Alex Riesen, 2007-08-29 19:52

Subject: Re: New to git, related multi-projects
Message-ID: <20070829195216.GB11824@steel.home>
URL: https://gitlist.dev/e/20070829195216.GB11824%40steel.home
In-Reply-To: <7F6E024B-253E-40C6-9012-9CF1B2F374D8@yahoo.ca>

```
Jean-François Veillette, Wed, Aug 29, 2007 20:18:14 +0200:
> The company currently use cvs, it has a cvs tree where the first  
> directory level is per client, the second directory level is the  
> project, then inside it we have the many artifacts, like :
> cvsserver/Shared/Documentation/PresentationTemplate.doc
> cvsserver/Shared/Documentation/AnalysisTemplate.doc
> cvsserver/Shared/Devel/CommonLib/*
> cvsserver/ClientA/ProjectA/Doc/Presentation.doc
> cvsserver/ClientA/ProjectA/Doc/Analysis.doc
> cvsserver/ClientA/ProjectA/Dev/ApplicationA/*
> cvsserver/ClientA/ProjectA/Dev/ApplicationB/*
> cvsserver/ClientA/ProjectA/Dev/ApplicationC/*
> cvsserver/ClientA/ProjectA/Dev/LibraryA/*
> cvsserver/ClientA/ProjectA/Dev/LibraryB/*
> 
> What would be the best way to represent a similar setup in git ?
> I was thinking of having a repository at the project level, and add  
> atomic  subdirectories (code for applications and libraries for  
> example)  as submodules.
> If submodule are the right way to go, ...

not necessarily. I'd try plain branches first, unless the client's
projects have lots of applications (or libraries, IOW, modules) and
many of them are optional for your development process. "Optional"
better fits what submodules are: their presence is supermodule is
optional too. Many fixes after introduction of the submodules was just
ignoring them :)

> ... can a submodule, include a   submodule, for example,
> ApplicationA use LibraryA and CommonLib ?

yes.

```
