On 15/01/2020 10:13, Gaius Mulley wrote:
>
> Hello,
>
> Firstly many thanks to all who have worked on the git migration and also
> for the offer of help :-)
>
> I'm seeking a little advice on an efficient way to combine the gm2 git
> repro with the gcc git repro. When gcc was using subversion I had a
> script which untared the gm2 git over the subversion, applied local
> patches to the gcc tree and then it was ready for use. I could git diff
> in the gm2 tree and svn diff in the gcc tree - etc.
>
> I wonder if a similar model can be achieved now gcc uses git?
>
> In essence the gm2 front end adds three subtrees to gcc
>
> libgm2
>
> gcc/m2
>
> gcc/testsuite/gm2
>
> currently these are all in one repro
> gm2/gcc-versionno/{libgm2,gcc/m2,gcc/testsuite/gm2}.
>
> http://git.savannah.gnu.org/cgit/gm2.git/tree
>
> I'm a little cautious of choosing an initial working model without
> knowing the implications. There seem to be many possible solutions
> (subtree, submodule) to name but two.
>
> Disk space is not a concern, the time to recreate a working tree is more
> important.
>
> regards,
> Gaius
>
I'm not sure if you even can use a subtree/submodule at the top level --
I'm under the impression that when creating one you need to put the
entire other repository in a subdirectory.
(If that's wrong please correct me -- it sounds like it might be useful
;-) )
Maybe you could look into the `--work-tree` and `--git-dir` options?
One approach would be to have your gm2 repository information under
`.gm2-git` and your gcc repository information under `.git`.
Then you might be able to create an alias for git that means `git gm2`
expands to `git --git-dir=$(root directory)/.gm2-git` and everything
should just work.
(I say might since I'm not 100% sure you can expand to `root directory`
automatically in a git alias -- maybe through another git alias that
says `root = !pwd`).