git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@osdl.org>
To: Han-Wen Nienhuys <hanwen@xs4all.nl>
Cc: git@vger.kernel.org
Subject: Re: multiple branches or  multiple repositories
Date: Thu, 2 Nov 2006 23:11:53 -0800 (PST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0611022301380.25218@g5.osdl.org> (raw)
In-Reply-To: <eie7ae$ib6$1@sea.gmane.org>



On Fri, 3 Nov 2006, Han-Wen Nienhuys wrote:
> 
> We're in the process of converting the LilyPond CVS repository at
> savannah.gnu.org to GIT.  One of the questions we need to deal with, is how
> handle modules.
> 
> There seem to be two approaches:
> 
>  - for each module, create a separate git repository.  Inside the repository,
>    each subproject has its own branching
> 
>  - put each module as a separate branch in a shared repository.
> 
> I think the first option is the most natural one, but are there any issues,
> besides namespace pollution to the second option?

There are no real issues either way, and perhaps more importantly, it's 
not even something you have to decide on day one.

You can easily do it one way or the other, and either
 - switch around as needed
 - or even _mix_ the two approaches where it makes sense.

For example, it may be entirely sensible to have the common "distribution 
points" use a single shared repository that contains all modules as 
separate branches within the same repository.

But even though such a central distribution point repository is set up 
that way, individual developers may well decide that they are happier 
having separate repositories for different modules. The two approaches are 
not mutually incompatible, and you can fetch data and push it back out 
between both different kinds of repositories.

The namespace pollution - especially of tags - is indeed likely to be the 
worst issue. If you expect to have many independent modules in the same 
repository, you obviously shouldn't use tag-names like the Linux kernel 
uses (ie "v2.6.18"), since those would not be unambiguous in such a shared 
repo. 

(The same is true of branches too, but perhaps less so if only because 
people are _already_ using different branch names between different 
repositories, and we have good support for translating a local branch 
name "X" into a remote branch name "Y" when transferring data between the 
two. In contrast, tagnames are kind of expected to be "shared")

But if you're ok with always just naming tags "modulename/release-1.2.3" 
or similar, you shouldn't really have any issues either way. And most 
importantly, if you do decide to go one way, and then later figure out 
that it would have been easier the other way, you can just switch between 
the two models, exactly because mixing them isn't really a problem.


  parent reply	other threads:[~2006-11-03  7:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-03  1:51 multiple branches or multiple repositories Han-Wen Nienhuys
2006-11-03  2:38 ` Junio C Hamano
2006-11-03  7:11 ` Linus Torvalds [this message]
2006-11-03 16:01 ` Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0611022301380.25218@g5.osdl.org \
    --to=torvalds@osdl.org \
    --cc=git@vger.kernel.org \
    --cc=hanwen@xs4all.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).