{"thread":{"id":"59472","subject":"[RFC][GSoC Proposal Draft] clone: bundle-uri: make it resumable","startedAt":"2023-03-25T08:38:01Z","lastAt":"2023-03-25T08:38:01Z","messageCount":1,"participants":["Khalid Masum"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"474160","messageId":"20e57ea3-3284-a5c8-09a8-5f2159818d57@gmail.com","threadId":"59472","inReplyTo":null,"subject":"[RFC][GSoC Proposal Draft] clone: bundle-uri: make it resumable","fromName":"Khalid Masum","fromEmail":"khalid.masum.92@gmail.com","sentAt":"2023-03-25T08:36:58Z","receivedAt":"2023-03-25T08:38:01Z","isPatch":false,"sender":{"key":"khalid.masum.92@gmail.com","avatar":"https://avatars.githubusercontent.com/u/55809005?v=4"},"body":"Hello!\n\nThis is my draft proposal to implement resumable bundle-uri clone.\n\nI would love to hear your thoughts on this.  Also, I think the timeline \nsection\n\ncould be improved amd I need your input on that.\n\n\nthanks,\n\n  -- Khalid Masum\n\n\n======================================================\nGSoC23 Draft Proposal: Resumable cloning with git bundle\n======================================================\n\nOverview:\n=========\nCurrently, git clones are not resumable. But there is a workaround using\ngit bundles, where the user can `wget -c` the bundle, then clone from it.\nHowever this comes with drawbacks that `git clone` does not have. For\nexample, with git clone we can specify branch, or send authentication \ncredentials,\nwhich we can not do with `wget` in a simple manner.\n\nHowever with the new `bundle-uri` we should be able to add this feature.\n\nAs suggested by Derrick Stolee <derrickstolee@github.com> here:\n\nhttps://lore.kernel.org/git/7097d1d6-00a1-2a82-1923-610d41f4053f@github.com/\n\nWhere it is suggested that, the randomized temporary download files \ncould be\nrenamed with hashed url, enabling the ability to have resumable clone.\n\nDeliverables:\n=============\n- Ability to resume a cloning process with bundle-uri.\n- Testcases for the newly added feature.\n- Update on documentation for the newer changes.\n\nTimeline:\n=========\nBefore April 25:\n     - Familiarize myself with git's codebase and architecture.\n     - Making small contributions to git.\n\nBefore May 25:\n     - Research and familiarize with git bundle and git object download\n       process.\n     - Understanding the core implementation of git bundle.\n     - Communicate with mentors for further understanding and finding \nways of\n       implementation.\n\nMay 26 - June 20:\n     - Starting to implement the git bundle-uri resumable feature.\n     - Refactor the codebase for necessary integration.\n     - Write some of the test-cases for the created modules.\n\nJune 21- July 20:\n     - Finish implementing the feature.\n     - Necessary test cases are implemented and reviewed.\n     - Document the changes.\n\nJuly 21 - Aug 10:\n     - Finishing touches, making sure everything is stable.\n\nAug 11- 27:\n     - Buffer period for any unexpected events.\n     - Final report writing.\n     - Project submission\n\nContributions\n==============\nMicroproject:\n-------------\nModernized test script: t3501\nLink: \nhttps://lore.kernel.org/git/20220405150657.19801-1-khalid.masum.92@gmail.com/\nStatus: Accepted\n\nOther contributions:\n--------------------\nPatch review: \nhttps://lore.kernel.org/git/pull.1474.git.git.1679233875803.gitgitgadget@gmail.com/\n\nMotivation:\n===========\nI am captivated by the engineering behind Git and aspire to contribute\nregularly to the project, impacting its features. I view GSoC as an\nexcellent opportunity to jumpstart my contributions and deepen my\nunderstanding of software engineering.\n\nConclusion:\n===========\nImplementation of resumable clone is a long wanted feature in git\nsince 2011. With this contribution I believe we will be able to be\ncloser to this goal, or at least get a very good workaround on this\nfeature.\n\n"}]}