{"thread":{"id":"65073","subject":"[GSOC] Discuss and Introduction: Improve disk space recovery for partial clones","startedAt":"2026-02-25T06:17:47Z","lastAt":"2026-03-01T15:34:38Z","messageCount":3,"participants":["Amisha Chhajed","Derrick Stolee"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"537067","messageId":"CAPvEtrfYtEvsxbsD2Q378R3e84DwHPPCSgaa1pQugrwchj9h8g@mail.gmail.com","threadId":"65073","inReplyTo":null,"subject":"[GSOC] Discuss and Introduction: Improve disk space recovery for partial clones","fromName":"Amisha Chhajed","fromEmail":"amishhhaaaa@gmail.com","sentAt":"2026-02-25T06:17:34Z","receivedAt":"2026-02-25T06:17:47Z","isPatch":false,"sender":{"key":"amishhhaaaa@gmail.com","avatar":"https://avatars.githubusercontent.com/u/136238836?v=4"},"body":"Hello everyone!\nI am Amisha, I have made some contributions to Git highlighted below,\n\nhttps://lore.kernel.org/git/20260121130005.72375-1-amishhhaaaa@gmail.com/\n\nsparse-checkout: optimize string_list construction and add tests to\nverify deduplication.\nImprove O(n^2) complexity to O(n log n) while building a sorted\n'string_list' by constructing it unsorted then sorting it\nfollowed by removing duplicates.\n\nhttps://lore.kernel.org/git/20260129121220.69267-1-amishhhaaaa@gmail.com/\n\nu-string-list: add unit tests for string-list methods\nstring-list: add string_list_sort_u() that mimics \"sort -u\"\n\n[WIP] https://lore.kernel.org/git/20260221162359.43336-2-amishhhaaaa@gmail.com/\n\nMy time while contributing to this project has been very rewarding and amazing!\n\nI am aspiring to apply for project 'Improve disk space recovery for\npartial clones',\nI am aware of sparse-checkout and surrounding code while working on my\nfirst patch,\nhence i believe if we are in cone mode we can easily free up the space\nin partial clone\nfor files outside of cone mode whenever user runs cleanup command, however\nfiguring out what to free in non cone mode is a fairly new topic for\nme, i would love to have\ndiscussions surrounding this, i believe a lot inspiration about what\nwe can clean can be\nderived from git gc and git maintenance.\n\nI would love to hear opinions and ideas on this!\n\n-- \nThanks,\nAmisha\n"},{"id":"537082","messageId":"735eb76e-44a9-4f79-b769-23a3a07437ae@gmail.com","threadId":"65073","inReplyTo":"CAPvEtrfYtEvsxbsD2Q378R3e84DwHPPCSgaa1pQugrwchj9h8g@mail.gmail.com","subject":"Re: [GSOC] Discuss and Introduction: Improve disk space recovery for partial clones","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2026-02-25T11:49:08Z","receivedAt":"2026-02-25T11:49:10Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 2/25/26 1:17 AM, Amisha Chhajed wrote:\n\n> I am aspiring to apply for project 'Improve disk space recovery for\n> partial clones',\n\nI think this is a noble goal. Removing blobs that you don't expect to\nneed again would be valuable.\n\n> I am aware of sparse-checkout and surrounding code while working on my\n> first patch,\n> hence i believe if we are in cone mode we can easily free up the space\n> in partial clone\n> for files outside of cone mode whenever user runs cleanup command, however\n> figuring out what to free in non cone mode is a fairly new topic for\n> me, i would love to have\n> discussions surrounding this, i believe a lot inspiration about what\n> we can clean can be\n> derived from git gc and git maintenance.\n\nI think you will have a larger impact if you focus on _old_ blobs that\nwere maybe necessary for a previous checkout of an old commit but the\npaths have been updated in more recent checkouts so those blobs are\nunlikely to be needed again other than for history queries.\n\nYou should keep in mind that some tools automatically populate stale\ndata (such as VS Code running 'git blame' in the background of every\nopen file) and so you want to consider how any decision you make here\nmay lead to _increased_ resource usage by redownloading data you\nremoved.\n\nThese are just things to think about. It's an interesting space to\nhelp users save disk.\n\nThanks,\n-Stolee\n\n\n"},{"id":"537445","messageId":"CAPvEtrd=tJ_QuAvyTm2cdmTevwn_Cwv0tQjVpaUzRS6dxggqJw@mail.gmail.com","threadId":"65073","inReplyTo":"735eb76e-44a9-4f79-b769-23a3a07437ae@gmail.com","subject":"Re: [GSOC] Discuss and Introduction: Improve disk space recovery for partial clones","fromName":"Amisha Chhajed","fromEmail":"amishhhaaaa@gmail.com","sentAt":"2026-03-01T15:34:25Z","receivedAt":"2026-03-01T15:34:38Z","isPatch":false,"sender":{"key":"amishhhaaaa@gmail.com","avatar":"https://avatars.githubusercontent.com/u/136238836?v=4"},"body":"> I think this is a noble goal. Removing blobs that you don't expect to\n> need again would be valuable.\n\nThank you!\n\n> I think you will have a larger impact if you focus on _old_ blobs that\n> were maybe necessary for a previous checkout of an old commit but the\n> paths have been updated in more recent checkouts so those blobs are\n> unlikely to be needed again other than for history queries.\n\nThank you for the insight!\n\n> You should keep in mind that some tools automatically populate stale\n> data (such as VS Code running 'git blame' in the background of every\n> open file) and so you want to consider how any decision you make here\n> may lead to _increased_ resource usage by redownloading data you\n> removed.\n>\n> These are just things to think about. It's an interesting space to\n> help users save disk.\n\nI thought about making the command user-driven, which is when the user\nwants to free up space they can run something like 'git evict\n--older-than=30.days'\nor 'git evict --outside-cone' and such similar commands, that way they\ncan remove\nexactly what they intend to remove in case of commits and blobs.\nI would love to hear opinions on if the command would look better like this or\nautomatic like git maintenance, like a background task.\n\nThank you again, I really appreciate it.\n-- \nThanks,\nAmisha\n"}]}