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

Reply via email to