# Cleanup tool for old blobs in partial clone

3 messages from 2020-12-11 to 2020-12-15. Participants: Miłosz Kosobucki, Christian Couder.
Thread: https://gitlist.dev/t/54811

## Miłosz Kosobucki, 2020-12-11 12:03

Subject: Cleanup tool for old blobs in partial clone
Message-ID: <6446f471-87ed-9fc4-fd54-61c5cf95a218@gmail.com>
URL: https://gitlist.dev/e/6446f471-87ed-9fc4-fd54-61c5cf95a218%40gmail.com

```
Hello,

I recently looked into the partial clone functionality and how it could 
be used to replace Git LFS.

Let's say that I use partial clone where one directory is filtered out 
through --filter=sparse:oid=XXX. Let's also say it's a directory with 
big assets for a computer game.

Now, as the project progresses and new versions of assets are checked 
in, I'll accumulate many version of these assets as I get new versions. 
I won't need them though, because most of the time I'm interested only 
in the latest version.

So my question is: is there some tool (probably similar to git lfs 
prune) that will let me get rid of the blobs that I don't need anymore?

I couldn't find information about it anywhere in the docs. I vaguely 
remember a mention of something like that possibly being done in the 
future in partial clone (or maybe promisor remote?) patch mails but I 
couldn't find it again.

Best regards,
-- 
Miłosz Kosobucki

```

## Christian Couder, 2020-12-13 10:10

Subject: Re: Cleanup tool for old blobs in partial clone
Message-ID: <CAP8UFD2ibGdznacrC=Sf6pZtzEiGJ7v+2L8PbM3m2PDdSBoYYg@mail.gmail.com>
URL: https://gitlist.dev/e/CAP8UFD2ibGdznacrC%3DSf6pZtzEiGJ7v%2B2L8PbM3m2PDdSBoYYg%40mail.gmail.com
In-Reply-To: <6446f471-87ed-9fc4-fd54-61c5cf95a218@gmail.com>

```
Hi,

On Fri, Dec 11, 2020 at 3:07 PM Miłosz Kosobucki <mikom3@gmail.com> wrote:
>
> Hello,
>
> I recently looked into the partial clone functionality and how it could
> be used to replace Git LFS.
>
> Let's say that I use partial clone where one directory is filtered out
> through --filter=sparse:oid=XXX. Let's also say it's a directory with
> big assets for a computer game.
>
> Now, as the project progresses and new versions of assets are checked
> in, I'll accumulate many version of these assets as I get new versions.
> I won't need them though, because most of the time I'm interested only
> in the latest version.
>
> So my question is: is there some tool (probably similar to git lfs
> prune) that will let me get rid of the blobs that I don't need anymore?

I have been playing a bit with partial clone (see
https://lore.kernel.org/git/CAP8UFD35kk10FpUnPpiAUzTHJbm=SJ-76OTmkTwBstGFe3Zgdw@mail.gmail.com/),
and I started working on `git repack` and the underlying `git
pack-objects`, so that `git repack -a -d --filter=...` could work. I
cannot promise anything about when it will be submitted, merged,
released, etc.

Also I have been working on it on the server side though, where it's
ok to get rid of everything that is stored elsewhere. It might not be
your case, but on the client side one might want to keep the (large)
blobs that can be reached directly from the tip of some branches,
which might require further work.

> I couldn't find information about it anywhere in the docs. I vaguely
> remember a mention of something like that possibly being done in the
> future in partial clone (or maybe promisor remote?) patch mails but I
> couldn't find it again.

Best,
Christian.

```

## Miłosz Kosobucki, 2020-12-15 21:41

Subject: Re: Cleanup tool for old blobs in partial clone
Message-ID: <3b90b261-7920-671a-6566-70cd97b8d0e4@gmail.com>
URL: https://gitlist.dev/e/3b90b261-7920-671a-6566-70cd97b8d0e4%40gmail.com
In-Reply-To: <CAP8UFD2ibGdznacrC=Sf6pZtzEiGJ7v+2L8PbM3m2PDdSBoYYg@mail.gmail.com>

```
Hello Christian.

On 13.12.2020 11:10, Christian Couder wrote:
> Hi,
> 
> On Fri, Dec 11, 2020 at 3:07 PM Miłosz Kosobucki <mikom3@gmail.com> wrote:
> 
> I have been playing a bit with partial clone (see
> https://lore.kernel.org/git/CAP8UFD35kk10FpUnPpiAUzTHJbm=SJ-76OTmkTwBstGFe3Zgdw@mail.gmail.com/),
> and I started working on `git repack` and the underlying `git
> pack-objects`, so that `git repack -a -d --filter=...` could work. I
> cannot promise anything about when it will be submitted, merged,
> released, etc.
> 
> Also I have been working on it on the server side though, where it's
> ok to get rid of everything that is stored elsewhere. It might not be
> your case, but on the client side one might want to keep the (large)
> blobs that can be reached directly from the tip of some branches,
> which might require further work.
> 
>> I couldn't find information about it anywhere in the docs. I vaguely
>> remember a mention of something like that possibly being done in the
>> future in partial clone (or maybe promisor remote?) patch mails but I
>> couldn't find it again.
> 
> Best,
> Christian.
> 

Thank you very much for this detailed information, and thanks for all 
the great work you and the git community are doing.

Best,
-- 
Miłosz Kosobucki

```
