Hacker News new | ask | show | jobs
by derefr 2879 days ago
(Assuming you’re familiar with Git internals as well:) do you think there’s anything in the architecture of Git preventing it from having this feature? And, if not, should we Git developers push for it / work on a PR?

It’d make a lot of sense to integrate it if it’s possible, I think. The design direction of Git is somewhat subservient to the needs of Linux (i.e. Git is a thing Linus made to replicate BitKeeper, but it also was made to scratch—and continues to scratch—many of the LKML itches re: their unique patch-management workflows.)

So if Linux is having to do something re: “SCM ops” tooling, that could be better solved in Git, then why not solve it in Git?

(If anyone who was responsible for this Kernel.org Git bundle setup wants to chime in, that’d be interesting; I assume they likely considered making this a Git thing first, so there might be a good reason why it’s not.)

4 comments

Yes, builtin CDN offload is actively under discussion as part of v2 protocol changes, but there is nothing currently available in released versions. The "repo" command that comes with Android dev tools uses the clone.bundle approach (which is basically what we're implementing on git.kernel.org for a handful of core repositories). I would guess "repo" is partly why nobody added anything like this directly to git -- for Google, that particular itch has been scratched.

Anyway, here's hoping that the coming protocol changes will have a native solution to this problem.

The implementation side of git already has this feature. The "bundle" file in the linked article is fundamentally the same thing. What git lacks is the automatic integration; you have to pull those bundles manually instead of having the client know how to get them automatically.
Great idea. The recent work to open up the git protocol mmakes it easier to add in this kind of smart behaviour: advertise a 'bundle' command that returns a URI to fetch the bundle from.
I think Google has something like that for the Android repositories. They are always synced through Git and 70 GiB+ in size.
yeah, the "repo" command they use has support for getting bundles, and then pulling the newer commits from the gerrit server.