Eric Wong <[email protected]> wrote:
> Jeff King <[email protected]> wrote:
> > That's my reading, too, but I didn't want to be responsible for
> > regressing some obscure case. At least Eric seems to _use_
> > update-server-info. ;)
>
> I also have something else on my mind for abusing info files with :>
> (another email)
I'm not sure when/if I'll have time for this; but this ought to
be possible:
GIT_DIR=$HTTP_URL git <any read-only command>
And possible without existing admins to setup or change
anything on their server.
Right now, I could do it by setting up a WebDAV server
and using fusedav[1] on the client.
But, not everybody runs a WebDAV server which allows PROPFIND
for listing files... However, info/refs and objects/info/packs
can give us all the info we need without needing PROPFIND. All
we'd need is the common GET/HEAD HTTP methods for read-only
access.
git doesn't need mmap; and curl + Range requests ought to be
able to get us what we need to emulate pread. It'd be great for
low-latency LANs, maybe not so great with high latency; but
probably better in many cases than cloning a giant repo to cat
one blob.
Also, cloning on a static bundle ought to be doable with:
git clone $REMOTE_OR_LOCAL_PATH/foo.bundle
And yeah, it also sucks that bundles double storage overhead
for admins; it would be nice if I could use bundles as alternates
or packs...
Anyways, all of this is probably a lot of work and I don't hack
much, anymore.
[1] I have many patches for fusedav, and the debian maintainer
seems dead, and upstream's moved on: https://bugs.debian.org/fusedav
davfs2 can't do Range requests, so it won't work for big repos...