I am working on a project where there are a number of git repositories
that are added at different times, with different remotes being added
(and probably removed) at different times. I thought a nice way to
coordinate this effort was to use 'mr', but I'm stuck on how to do it.

I have a shared git repository called 'shared-mr' that everyone who is
working on this project checks out initially. In that repository is
contained a .mrconfig. To get started you would check out that
repository, then use 'mr update to create all the other repositories and
their remotes. I was hoping that the 'shared-mr' repository could be
written by everyone involved, and changes be made to the .mrconfig
there, and then a 'mr update' would update that shared-mr .mrconfig and
any changes would be then picked up by 'mr'.

The .mrconfig would look something like this:

update = git remote update

checkout = git clone gito...@labs.riseup.net:shared-apache apache
post_checkout = cd apache &&
                git remote add foo git://foo.ch/apache.git
                git remote add bar git://bar.net/modules/apache
                git remote add baz git://github.com/baz/apache.git
                git remote update

checkout = git clone gito...@labs.riseup.net:shared-mr


Once you have run 'mr update all the repositories and their remotes are
added, and you can then go about your business.

But what if someone adds a new remote? Because I put things in the
.mrconfig as a 'post_checkout' the new remote will not be added to the
git repository. I could add the remotes twice, in a post_checkout (for
the new person who wants to get them all) and then also as a pre_update,
but that seems a bit ugly.

Thanks for any ideas, or better ways to do this!


Attachment: pgpO7qLirh1Ef.pgp
Description: PGP signature

vcs-home mailing list

Reply via email to