Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git submodule from subdirectory?

Let's say I have two git repos. RepoA is a common repo that should be shared among other projects. ReopB is some project that needs to access something in RepoA.

RepoA

https://.../RepoA
    /Something
    /Source
        /Project1
        /Project2
        ...
        /ProjectN

RepoB

https://.../RepoB
    /SomethingElse
    /Source
        /MainProject
        /RepoA
            /Project1  #Submodule of RepoA at /Source/Project1

Using the illustration above, you can see what I am trying to do is configure a submodule that is not the root of RepoA, but a specific path within the repo. In this case, I want to map RepoB/Source/RepoA/Project1 to RepoA/Source/Project1.

I've done some research and it seems that it is not straightforward, or perhaps not possible to do this. I hope I'm wrong!

We're moving from SVN to GIT and in SVN we were using Externals to accomplish this with ease.

Note

I am also open to restructuring RepoA. But I want to keep the main structure in place. For instance, if I can somehow branch each Project within RepoA/Source/...but I don't want this to get complex.

like image 755
Josh M. Avatar asked Jul 18 '14 19:07

Josh M.


1 Answers

Have you considered splitting up the 'Projects' in RepoA such that they are separate repos? You could do this by using git subtree split. Then you include the Project1 repo as submodules in both RepoA and RepoB.

like image 167
ma499 Avatar answered Oct 10 '22 23:10

ma499