Subject: Re: Site dependent repositories

From: Jens Lehmann <[email-masked]>
Date: Sun, 21 Aug 2011 18:14:30 +0200

Am 21.08.2011 05:31, schrieb Stewart A. Brown:
> I am wondering whether or not git has the functionality to handle
> my situation.
> 
> I have git repositories at multiple sites.  At each site the git repository
> has site dependent sources.  Each repository is organised something
> like:
> 
> top/a/local
>       b
>       c/d/extensions
>       e
> 
> The directories top, a, b, c, d, and e have sources that need to be
> pushed or pulled between the repositories at all sites.  The directories
> 'local' and 'extensions' have sources that must be managed within sites
> but never pushed or pulled between sites.
> 
> The ignore mechanism will not suffice because the files in 'local' and
> 'extensions' must be source managed.  I have looked a bit into
> submodules, filters, and hooks.  None of these jumps out as obvious, but
> they are rich mechanisms with plenty of subtleties.
> 
> Does git have a way of letting me do this?

It would work if you could set it up like this:

top/shared
    non-shared-stuff

where "top" is your git repository, "shared" is a submodule you put all the
non-site specific stuff in and have that version controlled together with
your local stuff. If you can't rearrange your directory tree you might be
able to use symlinks to achieve that layout:

top/a/local -> ../local
      b
      c/d/extensions -> ../../extensions
      e
top/extension
top/local

where "a" is your shared submodule that lives together with "extensions" and
"local" in the top level repo.