Re: [PATCH 2/2] repack: add --filter=<filter-spec> option
From: Christian Couder <hidden>
Date: 2022-01-30 08:16:22
On Sat, Jan 29, 2022 at 8:14 PM John Cai [off-list ref] 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!