Michael J Gruber wrote:
That downside is a bit disappointing. I might as well just make "git
remote export" simply generate a script of "git remote add" commands
based on the contents of .git/config, and check that script in. Then I
could run the script in a clone to recreate the origin's remotes.
Yes, if you feel okay about running a script repeatedly which may change
due to being versioned; rather than running a script/command which uses
versioned input.
Either way it's a two-step process: "git pull; git remote import" vs.
"git pull; ./import-remotes.sh".
It also seems awkward to have an export step in the origin repository.
I don't really see a need for an export step (except as an artifact of
the above implementation).
I had the impression that you want to configure as much as possible on
the "central", and have clones follow automatically. It's very likely
that you want your clones to see only a subset of central's remotes.
Both (individually) imply that there has to be a step on central which
determines which (if any) central remotes appear in clones automatically.
I actually don't care to limit what the clones can see. I understand
the reasoning behind such control, but in my case it just doesn't apply.
It seems to me that this would be more natural if our hypothetical "git
remote import <X>" could just grab the remotes from repository <X> (or
the origin, if <X> is unspecified). I assume that would involve
lower-level changes than what you described, but to me it seems like the
more usable approach. (But then I know nothing of Git's internals, so
maybe this kind of change would be too much work?)
Feel free to hack the protocol and remote commands... Implementing
anything which exposes "server's" .git/config on the client without
interaction on the server side will most probably be rejected, though.
Point taken, but I think I will start with no origin-side controls,
since I have no need for them anyway. If/when I cobble together a patch
hopefully at that point we'll be able to have a wider discussion about
such controls.
My suggestions were meant to be a minimal effort attempt within and
following (see submodules) current infrastructure. I guess now it's up
to you to pick the approach you deem most appropriate in your scenario
and follow through with it.
Many thanks for taking the time to discuss this. Now I've got to roll
up my sleeves!
(BTW, any pointers to descriptions or overviews of git's code base?)
Marc
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html