On Tue, Apr 01, 2014 at 07:45:03AM -0400, Jeff King wrote:
> On Tue, Apr 01, 2014 at 07:25:54PM +0900, Mike Hommey wrote:
> > I am currently prototyping a "native" mercurial remote handler for git,
> For my own curiosity, how does this differ from what is in
contrib/remote-helpers/git-remote-hg does a local mercurial clone before
doing the git conversion. While this is not really a problem for most
mercurial projects, it tends to be slow with big ones, like the firefox
source code. What I'm aiming at is something that can talk directly to a
remote mercurial server.
> > Would adding a fast-import command to handle deltas be considered useful
> > for git? If so, what kind of format would be suitable?
> It breaks fast-import's "lowest common denominator" data model that is
> just passing commits and their contents over the stream. But we already
> do that in other cases for the sake of performance. I think the
> important thing is that the alternate formats are optional and enabled
> by the caller with command-line options.
> That being said, I foresee a few complications:
> 1. Git needs to know the sha1 of the full object. So unless the
> generating script knows that ahead of time, git has to expand the
> delta immediately anyway (this could still be a win if we end up
> using a good delta from elsewhere rather than doing our own delta
> search, but I suspect it's not so big a win as if we can just blit
> the delta straight to disk).
Good point. That could quickly become a problem with long delta chains.
> 2. Git does not store on-disk deltas between objects that are not in
> the same packfile. So you'd only be able to delta against an object
> that came in the same stream (or you'd have to "fix" the packfile
> on disk by adding an extra copy of the delta base, but that
> probably eliminates any savings).
Arguably, this would make the most difference on initial clone of big
projects, or large incremental updates (like, after a few weeks), which
would use a single pack anyways.
> As for format, I believe that git is basically xdelta under the hood, so
> you'd want either that or something that can be trivially converted to
It seems to me fast-import keeps a kind of human readable format for its
protocol, i wonder if xdelta format would fit the bill. That being said,
I also wonder if i shouldn't just try to write a pack on my own...
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html