Daniel Barkalow [off-list ref] writes:
Is there something currently that acts like git-clone, except that it sets
up automatic connections in the opposite direction? That is, you run it in
a repository with no origin, and it pushes the data to the specified
location (which probably needs to be set up already as an empty
repository) and sets the local side's origin remote to the location given.
The "git push" command allows you to push into an empty or even
unrelated destination, but I do think there no wrapper that
creates remotes/ file. BTW, calling that "origin" is probably
confusing. In the scenario you outlined, your local side is the
source and the remote is the sink.
FYI, here is what I have in my remotes/ko file to interact with
my kernel.org repository (the one that is mirrored out to the
public machines):
URL: zzz.kernel.org:/pub/scm/git/git.git/
Push: master
Push: +pu
Push: maint
Pull: master:refs/tags/ko-master
Pull: +pu:refs/tags/ko-pu
Pull: maint:refs/tags/ko-maint
and with this, I first run
$ git fetch ko
$ git show-branch master ko-master
to make sure I am not rewinding what I have already pushed out
by mistake, and then
$ git push ko
$ git push --tags ko ;# if I added a new tag
On Sun, 15 Jan 2006, Junio C Hamano wrote:
Daniel Barkalow [off-list ref] writes:
quoted
Is there something currently that acts like git-clone, except that it sets
up automatic connections in the opposite direction? That is, you run it in
a repository with no origin, and it pushes the data to the specified
location (which probably needs to be set up already as an empty
repository) and sets the local side's origin remote to the location given.
The "git push" command allows you to push into an empty or even
unrelated destination, but I do think there no wrapper that
creates remotes/ file. BTW, calling that "origin" is probably
confusing. In the scenario you outlined, your local side is the
source and the remote is the sink.
My general pattern is that I have an "origin" repository, which is public
and central. I do work in various other repositories, and push the results
to origin when I finish them. I create these with "git clone", so the
central point is called "origin" in each clone.
The odd case is when I start out; I have a repository with the initial
commit, and "origin" is blank. The desired result is that the central
location gets this commit, and the repository I'm starting from becomes
identical to any clone of the central location.
I don't create the initial commit in the central location because there's
no working tree there, and it's a pain to prepare a commit without one. I
suppose the alternative is to support cloning a blank repository, so I
could prepare the initial commit just like any later one.
Incidentally, I think it would be useful to have a script that creates a
remotes/ file given a command line like push or pull. Then you could use
"git pull" with a long command line until you were happy with the
behavior, and then make a shortcut out of it. It'd also be nice to have
the command list the remotes for you as well. If anyone's in the mood for
scripting and wants something to work on...
-Daniel
*This .sig left intentionally blank*