On Sat, Jan 29, 2022 at 8:14 PM John Cai <johncai86@xxxxxxxxx> wrote: > Apologies for the lack of clarity. Indeed, I can see why this is the most important > detail of this patch to provide enough context on, as it involves deleting > objects from a full repository as you said. > > To back up a little, the goal is to be able to offload large > blobs to a separate http server. Christian Couder has a demo [1] that shows > this in detail. You might have forgotten to provide a link for [1], also I am not sure if you wanted to link to the repo: https://gitlab.com/chriscool/partial-clone-demo/ or the demo itself in the repo: https://gitlab.com/chriscool/partial-clone-demo/-/blob/master/http-promisor/server_demo.txt > If we had the following: > A. an http server to use as a generalized object store > B. a server update hook that uploads large blobs to 1. s/1./A./ > C. a git server > D. a regular job that runs `git repack --filter` to remove large > blobs from C. > > Clients would need to configure both C) and A) as promisor remotes to Maybe s/C)/C./ and s/A)/A./ Also note that configuring A. as a promisor remote requires a remote helper. > be able to get everything. When they push new large blobs, they can > still push them to C), as B) will upload them to A), and D) will > regularly remove those large blobs from C). > > This way with a little bit of client and server configuration, we can have > a native way to support offloading large files without git LFS. > It would be more flexible as you can easily tweak which blobs are considered large > files by tweaking B) and D). Yeah, that's the idea of the demo. Thanks for working on this!