Carl Worth [off-list ref] writes:
On Fri, 5 Jan 2007 20:53:22 +0100, "=?ISO-8859-1?Q?Santi_B=E9jar?=" wrote:
quoted
I was talking about the default name, so you could do:
$ git clone\
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
$ cd linux-2.6
$ git remote add \
git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-2.6.git
$ git remote show libata-2.6
Yes.
No. Because...
I'd go one further and say that it'd be really nice if git-clone could
be seen as equivalent, (and basically equivalent internally), to a
simple sequence of steps that could be performed manually. Something
like:
name=$(basename $url)
mkdir $name
cd $name
git init-db
git remote add $url
git pull $name
you could say "git remote add $name $url" here, having computed
$name already.
But you guessed what I was driving at right ;-).
On Fri, 05 Jan 2007 17:59:52 -0800, Junio C Hamano wrote:
quoted
git init-db
git remote add $url
git pull $name
you could say "git remote add $name $url" here, having computed
$name already.
Though I guess clone would actually be doing the equivalent of:
git remote add origin $url
correct?
So that undercuts my argument a bit. If clone is always just using
"origin" for the remote that it creates then it's harder to justify
making "remote add" use part of the URL for the name. It would seem
convenient to be able to do:
git remote add git://hosting.org/$project/$maintainer1
git remote add git://hosting.org/$project/$maintainer2
but I guess that wouldn't help much if the project were organized
such that what's need is actually:
git remote add $maintainer1 git://hosting.org/~$maintainer1/$project
git remote add $maintainer2 git://hosting.org/~$maintainer2/$project
But the other piece is that clone does one thing more than setting up
a remote. It also creates a local branch "master" that is configured
with "remote" and "merge" entries. There's still no simple command
that sets this up that could be added to make the above list of steps
for a "manual clone" complete is there?
And by "simple" I mean something other than:
git repo-config branch.master.remote origin
git repo-config branch.master.merge refs/heads/master
It seems we're still missing a simple command that would create this
commonly desired arrangement. The only real input here is a local
branch name and a corresponding remote-tracking branch, (from which
the values for remote and merge could be determined). We've mentioned
before that "git checkout newbranch remote-tracking-branch" already
accepts those two pieces of information, so maybe we just want an
option there to create this extra configuration for further
tracking/merging.
-Carl
PS. It's probably too late, since "remote" already appears in
.git/remotes and in branch.*.remote entries in .git/config, but I do
have to say that "git remote add" looks really odd. The most natural
way to parse that is with "remote" as an adjective---so perhaps
interpreting this as a variant of "git add" that does something on the
remote side?
Previously, when I've wanted the functionality of what is now "remote
add" I've imagined it as a variant of "git clone" that would clone
"into" my existing repository (with a new "remote" name) rather than
creating a new repository. Or maybe this could be some new verb, (I'd
like something like "git track url [name]" perhaps. Though using a
verb would make it harder to add other actions beyond creation.
Anyway, there's some naming feedback, but like I said, it might be too
late to be used at all.