On Sat, 9 Jul 2005, Eric W. Biederman wrote:
>
> The current intelligent fetch currently has a problem that it cannot
> be used to bootstrap a repository. If you don't have an ancestor
> of what you are fetching you can't fetch it.
Sure you can.
See the current "git clone". It's actually quite good, it's a pleasure to
use now that it gives updates on how much it has done.
Just do
git clone src dest
to try it out. It starts out silent (for big repositories) because it
takes a while to get the whole rev list, but once it gets going it's quite
nice and gives a nice progress report..
It uses the exact same server side code that "git-fetch-pack" does (ie it
just starts "git-upload-pack" on the server).
Now, one thing you cannot do is to start a totally new _project_ on the
server side. In order to do a "git-send-pack", you need to first create a
directory and do a "git-init-db" on the remote side.
So to create a new project, what you need to do is
src$ ssh target
target$ mkdir new-project
target$ cd new-project
target$ git-init-db
target$ exit
src$ git-send-pack target:new-project master
and you've now sent your "master" branch to the new project at
"target:new-project".
You can even populate multiple branches at a time: just list them all (you
do have to list them, because by default "git-send-pack" will update the
_common_ branches, and since the other end is empty, there obviously are
no common branches to start with).
Ahh, you should even be able to automate the sending of all branches by
doing
git-send-pack target:new-project $(cd .git ; find refs -type f)
I think - that will end up being equivalent to a "reverse clone".
The smart clients are doing pretty damn well, I think.
Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html