git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: skillzero@gmail.com
To: git@vger.kernel.org
Subject: Re: Best way to re-do a CVS repository with git?
Date: Sat, 19 Apr 2008 12:47:31 -0700	[thread overview]
Message-ID: <2729632a0804191247t4458067etfc1627a533a84376@mail.gmail.com> (raw)
In-Reply-To: <m3wsmuqmmp.fsf@localhost.localdomain>

On Sat, Apr 19, 2008 at 1:23 AM, Jakub Narebski <jnareb@gmail.com> wrote:
> I think that such setup would be best managed by creating Git
> repository for each piece, and "integration" repositories, one for
> apps people, and one for firmware people, using submodule support in
> Git.

> Tagging entire release would be tagging in "integration" repository,
> the one using submodules.

Thanks for the info. git submodules seem like the right direction. But
unless I'm misreading the tutorial, using submodules would require
each user to know about and maintain every super module that might use
each submodule. For example, if you had:

moduleA
	fileA.txt
moduleB
	fileB.txt
moduleC
	fileC.txt

super1
	moduleA
	moduleC

super2
	moduleB
	moduleC

super3
	moduleA
	moduleC

I commit a change in fileA.txt (in moduleA). I now have to commit
moduleA to super1 and then commit moduleA to super3. Otherwise, super1
and super3 would still refer to the previous commit of moduleA. That's
a good amount of extra work (I can imagine there may being dozens of
super projects referring to a certain submodule).

But there's a more serious problem in my case because not all users
have access to all repositories. For example, if I have access to
super1, but not super3 (I may not even know super3 exists), I won't be
able to update super3. Now super3 is in a weird state: it has moduleA
as a submodule, but it refers to an older revision of moduleA.
Somebody with access to super3 has to know that moduleA has changes
that haven't been included in super3 and manually pull them.

Or am I just misunderstand how submodules work? It seems to me that
the super module could use a more abstract link: the super repository
would refer to a branch name (e.g. master). Then when I do a git pull
from super1, it would see it contains moduleA on branch "master" and
would pull down the latest "master" branch from moduleA without ever
having to commit moduleA to super1 or super3.

This is probably harder than it sounds, but it would seem to eliminate
the need to know anything about super modules (except initially when
the super repository is created). I just commit to moduleA and the
next time somebody pulls from super1 or super3, they get the change
automatically.

  reply	other threads:[~2008-04-19 19:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-17  2:37 Best way to re-do a CVS repository with git? skillzero
2008-04-19  8:23 ` Jakub Narebski
2008-04-19 19:47   ` skillzero [this message]
2008-04-19 22:49     ` Jakub Narebski

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=2729632a0804191247t4458067etfc1627a533a84376@mail.gmail.com \
    --to=skillzero@gmail.com \
    --cc=git@vger.kernel.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).