On Tue, 26 Jul 2005, Jeff Garzik wrote:
> >
> > Put another way: do you argue that X network transparency is a total waste
> > of time? You could certainly optimize X if you always made it be
> > local-machine only. Or you could make tons of special cases, and have X
> > have separate code-paths for local clients and for remote clients, rather
> > than just always opening a socket connection.
>
> Poor example... sure it opens a socket, but X certainly does have a
> special case local path (mit shm), and they're adding more for 3D due
> the massive amount of data involved in 3D.
.. and that's still a special case. Exactly like git does the "clone -l"
special case.
> Well, I'm not overly concerned, mostly curious. The pack+unpack step
> (a) appears completely redundant and (b) is the step that takes the most
> time here, for local pulls, after the diffstat.
It's not actually redundant. Some of the _compression_ may be, and you
could see if you prefer a smaller delta window (use "--window=0" to
git-pack-objects to totally disable delta compression), but in general you
can't actually just link the files over like with "git clone", because
that would create total chaos and a real mess if the other end was packed.
So "git pull" actually needs to copy one object at a time in order to have
sensible semantics together with "git repack". Now, you could make that
"one object at a time" thing have its own special cases ("if it's packed,
extract it as a unpacked object in the destination, if it's unpacked, just
link it if you can"), but it would just be pretty ugly.
If it ever gets to be a real performance problem, we can certainly fix it,
but in the meantime I _much_ prefer having one single path. I dislike the
rsync (and the http) paths immensely already, but at least I don't have to
use them..
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