{"thread":{"id":"54811","subject":"Cleanup tool for old blobs in partial clone","startedAt":"2020-12-11T12:04:52Z","lastAt":"2020-12-15T21:42:45Z","messageCount":3,"participants":["Miłosz Kosobucki","Christian Couder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"412076","messageId":"6446f471-87ed-9fc4-fd54-61c5cf95a218@gmail.com","threadId":"54811","inReplyTo":null,"subject":"Cleanup tool for old blobs in partial clone","fromName":"Miłosz Kosobucki","fromEmail":"mikom3@gmail.com","sentAt":"2020-12-11T12:03:21Z","receivedAt":"2020-12-11T12:04:52Z","isPatch":false,"sender":{"key":"mikom3@gmail.com","avatar":null},"body":"Hello,\n\nI recently looked into the partial clone functionality and how it could \nbe used to replace Git LFS.\n\nLet's say that I use partial clone where one directory is filtered out \nthrough --filter=sparse:oid=XXX. Let's also say it's a directory with \nbig assets for a computer game.\n\nNow, as the project progresses and new versions of assets are checked \nin, I'll accumulate many version of these assets as I get new versions. \nI won't need them though, because most of the time I'm interested only \nin the latest version.\n\nSo my question is: is there some tool (probably similar to git lfs \nprune) that will let me get rid of the blobs that I don't need anymore?\n\nI couldn't find information about it anywhere in the docs. I vaguely \nremember a mention of something like that possibly being done in the \nfuture in partial clone (or maybe promisor remote?) patch mails but I \ncouldn't find it again.\n\nBest regards,\n-- \nMiłosz Kosobucki\n"},{"id":"412155","messageId":"CAP8UFD2ibGdznacrC=Sf6pZtzEiGJ7v+2L8PbM3m2PDdSBoYYg@mail.gmail.com","threadId":"54811","inReplyTo":"6446f471-87ed-9fc4-fd54-61c5cf95a218@gmail.com","subject":"Re: Cleanup tool for old blobs in partial clone","fromName":"Christian Couder","fromEmail":"christian.couder@gmail.com","sentAt":"2020-12-13T10:10:31Z","receivedAt":"2020-12-13T10:11:43Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"Hi,\n\nOn Fri, Dec 11, 2020 at 3:07 PM Miłosz Kosobucki <mikom3@gmail.com> wrote:\n>\n> Hello,\n>\n> I recently looked into the partial clone functionality and how it could\n> be used to replace Git LFS.\n>\n> Let's say that I use partial clone where one directory is filtered out\n> through --filter=sparse:oid=XXX. Let's also say it's a directory with\n> big assets for a computer game.\n>\n> Now, as the project progresses and new versions of assets are checked\n> in, I'll accumulate many version of these assets as I get new versions.\n> I won't need them though, because most of the time I'm interested only\n> in the latest version.\n>\n> So my question is: is there some tool (probably similar to git lfs\n> prune) that will let me get rid of the blobs that I don't need anymore?\n\nI have been playing a bit with partial clone (see\nhttps://lore.kernel.org/git/CAP8UFD35kk10FpUnPpiAUzTHJbm=SJ-76OTmkTwBstGFe3Zgdw@mail.gmail.com/),\nand I started working on `git repack` and the underlying `git\npack-objects`, so that `git repack -a -d --filter=...` could work. I\ncannot promise anything about when it will be submitted, merged,\nreleased, etc.\n\nAlso I have been working on it on the server side though, where it's\nok to get rid of everything that is stored elsewhere. It might not be\nyour case, but on the client side one might want to keep the (large)\nblobs that can be reached directly from the tip of some branches,\nwhich might require further work.\n\n> I couldn't find information about it anywhere in the docs. I vaguely\n> remember a mention of something like that possibly being done in the\n> future in partial clone (or maybe promisor remote?) patch mails but I\n> couldn't find it again.\n\nBest,\nChristian.\n"},{"id":"412301","messageId":"3b90b261-7920-671a-6566-70cd97b8d0e4@gmail.com","threadId":"54811","inReplyTo":"CAP8UFD2ibGdznacrC=Sf6pZtzEiGJ7v+2L8PbM3m2PDdSBoYYg@mail.gmail.com","subject":"Re: Cleanup tool for old blobs in partial clone","fromName":"Miłosz Kosobucki","fromEmail":"mikom3@gmail.com","sentAt":"2020-12-15T21:41:42Z","receivedAt":"2020-12-15T21:42:45Z","isPatch":false,"sender":{"key":"mikom3@gmail.com","avatar":null},"body":"Hello Christian.\n\nOn 13.12.2020 11:10, Christian Couder wrote:\n> Hi,\n> \n> On Fri, Dec 11, 2020 at 3:07 PM Miłosz Kosobucki <mikom3@gmail.com> wrote:\n> \n> I have been playing a bit with partial clone (see\n> https://lore.kernel.org/git/CAP8UFD35kk10FpUnPpiAUzTHJbm=SJ-76OTmkTwBstGFe3Zgdw@mail.gmail.com/),\n> and I started working on `git repack` and the underlying `git\n> pack-objects`, so that `git repack -a -d --filter=...` could work. I\n> cannot promise anything about when it will be submitted, merged,\n> released, etc.\n> \n> Also I have been working on it on the server side though, where it's\n> ok to get rid of everything that is stored elsewhere. It might not be\n> your case, but on the client side one might want to keep the (large)\n> blobs that can be reached directly from the tip of some branches,\n> which might require further work.\n> \n>> I couldn't find information about it anywhere in the docs. I vaguely\n>> remember a mention of something like that possibly being done in the\n>> future in partial clone (or maybe promisor remote?) patch mails but I\n>> couldn't find it again.\n> \n> Best,\n> Christian.\n> \n\nThank you very much for this detailed information, and thanks for all \nthe great work you and the git community are doing.\n\nBest,\n-- \nMiłosz Kosobucki\n"}]}