{"thread":{"id":"59501","subject":"[GSoC][Proposal] Unify ref-filter formats with other --pretty formats","startedAt":"2023-03-30T17:21:51Z","lastAt":"2023-04-04T02:32:04Z","messageCount":3,"participants":["Kousik Sanagavarapu","Christian Couder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"474469","messageId":"20230330172052.10680-1-five231003@gmail.com","threadId":"59501","inReplyTo":null,"subject":"[GSoC][Proposal] Unify ref-filter formats with other --pretty formats","fromName":"Kousik Sanagavarapu","fromEmail":"five231003@gmail.com","sentAt":"2023-03-30T17:20:52Z","receivedAt":"2023-03-30T17:21:51Z","isPatch":false,"sender":{"key":"five231003@gmail.com","avatar":"https://avatars.githubusercontent.com/u/75560439?v=4"},"body":"This proposal can also be read at\nhttps://docs.google.com/document/d/1JBznA5n0WdWsbEskCeXxOnQuaa0urD89VtprxstLPzo/edit?usp=sharing\n\nUnify ref-filter formats with other --pretty formats\n\nPersonal Info\n=============\nFull Name: Venkata Sai Sri Kousik Sanagavarapu\nE-mail: five231003@gmail.com\nPh. No.: +91 6304308245\nAlt. Ph. No.: +91 9704654555\n\nEducation: Vasavi College of Engineering, Hyderabad\nYear: II / IV\nSemester: IV / XIII\nDegree: Bachelor of Engineering in\n\t    Electronics and Communication Engineering\n\nGithub: https://github.com/five-sh\n\nOverview\n========\nGit has an old problem of duplicated implementations of some logic.\nFor example, Git has at least 4 different implementations to format\ncommand output for different commands.\n\nThe goal of this project is to reduce these duplications and work\ntowards a single implementation to format command output. There is\nmore than one way to do this and there has been work done on this\nby GSoC students and Outreachy interns before me.\n\nThe expected project size is 175 hours or 350 hours and the difficulty\nlevel is medium.\n\nPre GSoC\n========\nI first got into Git’s source code around October, 2022 and have been\ngoing through code of topics that I found interesting whenever I had\nsome time away from my college work. The following are the patches that\nI submitted, from earliest to the latest:\n\n[PATCH] repository-version.txt: partialClone casing change\nStatus: merged into master\nCommit: 29c550f0a\nMerge Commit: 859899ddc (branch: ks/partialclone-casing)\nDescription:\nThis was my first patch to Git. I had found that the configuration\nvariable extensions.partialClone had a typo in the way it was documented,\nwhile reading the documentation surrounding partial clones. Now that I\nlook at it again, it seems that the patch was kind of noisy because the\nconfig variable would have still worked with no emphasis on the case but\nI guess it’s good to have everything going in one pattern, for the sake\nof documentation.\n\nMailing list:\nhttps://lore.kernel.org/git/20221110160556.29557-1-five231003@gmail.com/\n\n[RFC][PATCH] object.c: use has_object() instead of\n\t\t       repo_has_object_file()\nStatus: Peff and others took off from here\nDescription:\nThis again was kind of a search-and-replace type of patch. I wasn’t\nreally sure of the code and made this change as a result of the\ncomment surrounding repo_has_object_file() which says that this and\nrelated functions are deprecated (hence the RFC). Peff reviewed the\npatch and explained about this function and the use of it in the\nparticular case where I made the change, which was really helpful\nand added to my knowledge. Peff also realized that there were changes\nto be done to the logic of parse_object() (the function in which I\nmade the change) and submitted patches, which were in turn reviewed\nby Ævar and he submitted changes in response to that.\n\nI now think that I should have replied to the review and taken part\nin the discussion, leading to me learning something more, but I was\nso overwhelmed that I didn’t do it. I corrected this in my later patches.\n\nMailing list:\nhttps://lore.kernel.org/git/20221116163956.1039137-1-five231003@gmail.com/\n\n[PATCH] merge: use reverse_commit_list() for list reversal\n(Microproject)\nStatus: Discontinued\nDescription:\nThis was a change I did to address the issue #1156 on gitgitgadget.\nThis was however not a correct change logic wise because the\nreverse_commit_list() function modifies the list in-place (that is,\nuses the elements of the original list to make the reversed list)\nsuch a modification could break merge if we had multiple merge strategies.\n\nMailing list:\nhttps://lore.kernel.org/git/20230202165137.118741-1-five231003@gmail.com/\n\n[PATCH] commit: warn the usage of reverse_commit_list() helper\nStatus: Discontinued\nDescription:\nThis change was made based on the preceding patch but according to the\nreview it seems that such an addition to the comment was unnecessary\nas the original comment was clear enough.\n\nMailing list:\nhttps://lore.kernel.org/git/20230207150359.177641-1-five231003@gmail.com/\n\n[PATCH v4] index-pack: remove fetch_if_missing=0\nStatus: Discontinued\nDescription:\nThis change strove to remove the use of fetch_if_missing in index-pack\nby replacing has_object_file() with has_object() which does not\nlazy-fetch when an object is missing in a partial clone. A test was\nalso added to make sure that this change did not lazy-fetch.\n\nThis patch was discontinued because it was decided as a result of\ndiscussion that it would be better to check all the cases where\nfetch_if_missing is set to 1 and make changes there so that we either\nfetch efficiently or not fetch at all. By doing this, in the final\nworld-view, we can remove fetch_if_missing from index-pack as it\nwould be set to zero everywhere.\n\nMailing list:\nhttps://lore.kernel.org/git/20230317175601.4250-1-five231003@gmail.com/\n\nProposed Project\n================\nGoal\n====\nThe goal of this project is, as the title says, unifying ref-filter\nformats with other pretty formats. It would be great to have a single\ninterface, which took care of all the formatting and not have different\nlogic to implement different formatting options. Quoting from the mailing\nlist discussion\n\nhttps://lore.kernel.org/git/CAL21BmnU2aTT_8iqejurgKeHXk-kmmGK1tmXLcVh7G12rwRPOw@mail.gmail.com/\n\n“For example, 'short' in pretty means 'commit %(objectname)%0aAuthor: %(author)'\nin ref-filter”\n\nPrevious Work\n=============\nThere has been much work done in the past in this area. It majorly comes\nfrom previous Outreachy interns and GSoC students.\n\nOlga Telezhnaia <olyatelezhnaya@gmail.com> did work in this area in the\nfields of `cat-file` and `ref-filter` as a part of her Outreachy Internship\ntitled “Unifying Git’s format languages”. This work and also the work done\nafter that helped take ref-filter to a more general setting. She blogged\nabout her work here\n\nhttps://medium.com/@olyatelezhnaya\n\n\nHariom Verma <hariom18599@gmail.com> did work in this area as his GSoC\nproject titled “Unify ref-filter formats with other --pretty formats”.\nThis is the major work done in this area and the final report can be\nread at\n\nhttps://harry-hov.github.io/blogs/posts/the-final-report\n\nThis work is very useful as this serves as a kind of documentation\nand starting point to work towards the goal.\n\nZheNing Hu <adlternative@gmail.com> has done major work under his GSoC\nproject titled “Use ref-filter formats in git cat-file” in the area of\ngit cat-file, but more relevant to this project are the changes done to\nref-filter. This work was a continuation of Olga’s work and made some\nchanges to ref-filter logic. His final report can be read here\n\nhttps://github.com/adlternative/adlternative.github.io/blob/gh-pages/blogs/gsoc/GSOC-Git-Final-Blog.md\n\nNsengiyumva Wilberforce <nsengiyumvawilberforce@gmail.com> did work in\nthis area as a part of his Outreachy Internship titled “Unify ref-filter\nformats with other --pretty formats”. He got rid of the duplicate\nimplementation of the `signature` atom logic. This work can be read here\n\nhttps://lore.kernel.org/git/20230311210607.64927-1-nsengiyumvawilberforce@gmail.com/\n\nDifficulties\n============\nA major difficulty is backward compatibility, so any changes made to\nremove the duplicated logic would need to be done so very carefully.\nAny new tests added must also be very precise so as to efficiently\ntest the changes that are made.\n\nThere are also minor difficulties, such as the older tests failing\nbecause of the changes made, so the work will have to be in such a way\nthat those tests are successful and the duplicated logic is refactored.\n\nThe Plan\n========\nI think Hariom’s final report of his GSoC project is a good starting\npoint for working on the project. The report lists the work which is\nleft in the “WHATS LEFT?” section, so I think the first issue to work\non would be to look into why “Around 30% of the log tests are failing”\nand to work in the area of mbox/email formatting for commits. Work can\nalso be done to make pretty handle unknown formatting options.\n\nFrom here, I can work on the remaining portion of the formats and can\nremove the duplicated logic wherever possible, also writing tests to\nensure that everything works.\n\nI can take the approach similar to what Hariom did before this.\n\nEstimated Timeline\n==================\n\nMisc\nApril 5 to May 3\n- Continue to work on git and get more familiar with the code.\n\n- Find and fix stuff.\n\n- Work on stuff that interests me.\n\nCommunity Bonding\nMay 4 to May 28\n- Get myself familiar with the code of ref-filter.{c, h} and\n  pretty.{c, h}.\n\n- Communicate with my mentors about the approaches that can\n  be taken to get to the goal.\n\n- Working on Hariom’s branches (mentioned in his final report)\n  and making changes on top of them.\n\nCoding Phase I\nMay 29 to July 14\n- Convert formatting options to reuse ref-filter formatting logic.\n\n- Update existing tests and add new tests.\n\n- Update documentation.\n\nCoding Phase II\nJuly 14 to August 21\n- Further convert formatting options to reuse ref-filter formatting\n  logic and teach pretty to handle them.\n\n- Update existing tests and add new tests.\n\n- Update documentation.\n\nFinal Coding Phase\nAugust 21 to August 28\n- Wrap up and fix bugs (if any).\n\n- Update about the remaining stuff (if any).\n\n- Make a final report outlining future work.\n\nBlogging about Git\n==================\nI think blogging is one of the important parts of any project. It\nhelps other people understand what one is doing and helps the person\nget to a better understanding of their work. I will blog about the\nproject every week, the blogs can be read at\n\nhttps://five-sh.github.io/\n\nAvailability\n============\nI will be having my semester mostly throughout the summer and so will\nbe able to work 35-40 hours per week. I will always be able to dedicate\nmore time towards the project on the weekends.\n\nI will be in contact through my email and my phone.\n\nI am also open to calls and online meets.\n\nPost GSoC\n=========\nI love being a part of the Git community. The whole process of getting\nto work on git’s code, submitting patches and getting reviews is a new\nand great experience for me. I plan to continue in the community after\nGSoC too and will continue contributing to git and will continue learning\nfrom all of you.\n\nI am also open to co-mentoring or mentoring if ever given the chance.\n\nI also am very interested in partial clones and I hope to work in that\narea.\n\nClosing (optional)\n==================\nEver since I first got into git’s code and its community back in 2022,\nit has evolved into a very unique and great experience for me. I have\nlearned so much in the past few months and will continue to do so from\nall of you here at git.\n\nHariom's proposal has been a great resource in writing this proposal.\n\nThanks & Regards,\nKousik Sanagavarapu\n"},{"id":"474530","messageId":"CAP8UFD2Rq3Mh=X_g3_etHOje=G5hYgsFMO=6MuzgXUsysC+79A@mail.gmail.com","threadId":"59501","inReplyTo":"20230330172052.10680-1-five231003@gmail.com","subject":"Re: [GSoC][Proposal] Unify ref-filter formats with other --pretty formats","fromName":"Christian Couder","fromEmail":"christian.couder@gmail.com","sentAt":"2023-03-31T20:38:31Z","receivedAt":"2023-03-31T20:38:50Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"Hi,\n\nOn Thu, Mar 30, 2023 at 7:21 PM Kousik Sanagavarapu\n<five231003@gmail.com> wrote:\n>\n> This proposal can also be read at\n> https://docs.google.com/document/d/1JBznA5n0WdWsbEskCeXxOnQuaa0urD89VtprxstLPzo/edit?usp=sharing\n\nThanks for your proposal!\n\n[...]\n\n> Pre GSoC\n> ========\n> I first got into Git’s source code around October, 2022 and have been\n> going through code of topics that I found interesting whenever I had\n> some time away from my college work. The following are the patches that\n> I submitted, from earliest to the latest:\n\nThanks for these patches!\n\n[...]\n\n> Previous Work\n> =============\n> There has been much work done in the past in this area. It majorly comes\n> from previous Outreachy interns and GSoC students.\n>\n> Olga Telezhnaia <olyatelezhnaya@gmail.com> did work in this area in the\n> fields of `cat-file` and `ref-filter` as a part of her Outreachy Internship\n> titled “Unifying Git’s format languages”. This work and also the work done\n> after that helped take ref-filter to a more general setting. She blogged\n> about her work here\n>\n> https://medium.com/@olyatelezhnaya\n>\n>\n> Hariom Verma <hariom18599@gmail.com> did work in this area as his GSoC\n> project titled “Unify ref-filter formats with other --pretty formats”.\n> This is the major work done in this area and the final report can be\n> read at\n>\n> https://harry-hov.github.io/blogs/posts/the-final-report\n>\n> This work is very useful as this serves as a kind of documentation\n> and starting point to work towards the goal.\n>\n> ZheNing Hu <adlternative@gmail.com> has done major work under his GSoC\n> project titled “Use ref-filter formats in git cat-file” in the area of\n> git cat-file, but more relevant to this project are the changes done to\n> ref-filter. This work was a continuation of Olga’s work and made some\n> changes to ref-filter logic. His final report can be read here\n>\n> https://github.com/adlternative/adlternative.github.io/blob/gh-pages/blogs/gsoc/GSOC-Git-Final-Blog.md\n>\n> Nsengiyumva Wilberforce <nsengiyumvawilberforce@gmail.com> did work in\n> this area as a part of his Outreachy Internship titled “Unify ref-filter\n> formats with other --pretty formats”.\n\nActually he has been working on this outside of Outreachy (and any\nother program) as he didn't fulfill the requirements for being\naccepted by Outreachy.\n\n> He got rid of the duplicate\n> implementation of the `signature` atom logic.\n\nEven if the end goal is to get rid of duplicate implementations, for\nnow the ref-filter formats need to have equivalent atoms as what the\npretty formats have. Otherwise it will not be possible to fully\nreplace pretty formats using ref-filter formats. So for now the goal\nof Wilberforce's patch is to add `signature` atoms to the ref-filter\nformats.\n\n> This work can be read here\n>\n> https://lore.kernel.org/git/20230311210607.64927-1-nsengiyumvawilberforce@gmail.com/\n>\n> Difficulties\n> ============\n> A major difficulty is backward compatibility, so any changes made to\n> remove the duplicated logic would need to be done so very carefully.\n> Any new tests added must also be very precise so as to efficiently\n> test the changes that are made.\n>\n> There are also minor difficulties, such as the older tests failing\n> because of the changes made, so the work will have to be in such a way\n> that those tests are successful and the duplicated logic is refactored.\n>\n> The Plan\n> ========\n> I think Hariom’s final report of his GSoC project is a good starting\n> point for working on the project. The report lists the work which is\n> left in the “WHATS LEFT?” section, so I think the first issue to work\n> on would be to look into why “Around 30% of the log tests are failing”\n> and to work in the area of mbox/email formatting for commits. Work can\n> also be done to make pretty handle unknown formatting options.\n\nMore details about these would be nice.\n\n> From here, I can work on the remaining portion of the formats\n\nHere too.\n\n> and can\n> remove the duplicated logic wherever possible, also writing tests to\n> ensure that everything works.\n>\n> I can take the approach similar to what Hariom did before this.\n\nCould you give more details about what Hariom did that you would also\nlike to do?\n\n> Estimated Timeline\n> ==================\n>\n> Misc\n> April 5 to May 3\n> - Continue to work on git and get more familiar with the code.\n>\n> - Find and fix stuff.\n>\n> - Work on stuff that interests me.\n>\n> Community Bonding\n> May 4 to May 28\n> - Get myself familiar with the code of ref-filter.{c, h} and\n>   pretty.{c, h}.\n>\n> - Communicate with my mentors about the approaches that can\n>   be taken to get to the goal.\n>\n> - Working on Hariom’s branches (mentioned in his final report)\n>   and making changes on top of them.\n\nCan you give links to these branches and tell a bit about the changes\nyou would like to make on top of each one?\n\nBest,\nChristian.\n"},{"id":"474760","messageId":"20230404023149.11867-1-five231003@gmail.com","threadId":"59501","inReplyTo":"20230330172052.10680-1-five231003@gmail.com","subject":"[GSoC][Proposal v2] Unify ref-filter formats with other --pretty formats","fromName":"Kousik Sanagavarapu","fromEmail":"five231003@gmail.com","sentAt":"2023-04-04T02:31:49Z","receivedAt":"2023-04-04T02:32:04Z","isPatch":false,"sender":{"key":"five231003@gmail.com","avatar":"https://avatars.githubusercontent.com/u/75560439?v=4"},"body":"Thanks Christian for reviewing the previous version of this\nproposal. I have made the changes that you mentioned about\nin your review.\n\nThis proposal can also be read at\nhttps://docs.google.com/document/d/1JBznA5n0WdWsbEskCeXxOnQuaa0urD89VtprxstLPzo/edit?usp=sharing\n\nUnify ref-filter formats with other --pretty formats\n\nPersonal Info\n=============\nFull Name: Venkata Sai Sri Kousik Sanagavarapu\nE-mail: five231003@gmail.com\nPh. No.: +91 6304308245\nAlt. Ph. No.: +91 9704654555\n\nEducation: Vasavi College of Engineering, Hyderabad\nYear: II / IV\nSemester: IV / XIII\nDegree: Bachelor of Engineering in\n\t    Electronics and Communication Engineering\n\nGithub: https://github.com/five-sh\n\nOverview\n========\nGit has an old problem of duplicated implementations of some logic.\nFor example, Git has at least 4 different implementations to format\ncommand output for different commands.\n\nThe goal of this project is to reduce these duplications and work\ntowards a single implementation to format command output. There is\nmore than one way to do this and there has been work done on this\nby GSoC students and Outreachy interns before me.\n\nThe expected project size is 175 hours or 350 hours and the difficulty\nlevel is medium.\n\nPre GSoC\n========\nI first got into Git’s source code around October, 2022 and have been\ngoing through code of topics that I found interesting whenever I had\nsome time away from my college work. The following are the patches that\nI submitted, from earliest to the latest:\n\n[PATCH] repository-version.txt: partialClone casing change\nStatus: merged into master\nCommit: 29c550f0a\nMerge Commit: 859899ddc (branch: ks/partialclone-casing)\nDescription:\nThis was my first patch to Git. I had found that the configuration\nvariable extensions.partialClone had a typo in the way it was documented,\nwhile reading the documentation surrounding partial clones. Now that I\nlook at it again, it seems that the patch was kind of noisy because the\nconfig variable would have still worked with no emphasis on the case but\nI guess it’s good to have everything going in one pattern, for the sake\nof documentation.\n\nMailing list:\nhttps://lore.kernel.org/git/20221110160556.29557-1-five231003@gmail.com/\n\n[RFC][PATCH] object.c: use has_object() instead of\n\t\t       repo_has_object_file()\nStatus: Peff and others took off from here\nDescription:\nThis again was kind of a search-and-replace type of patch. I wasn’t\nreally sure of the code and made this change as a result of the\ncomment surrounding repo_has_object_file() which says that this and\nrelated functions are deprecated (hence the RFC). Peff reviewed the\npatch and explained about this function and the use of it in the\nparticular case where I made the change, which was really helpful\nand added to my knowledge. Peff also realized that there were changes\nto be done to the logic of parse_object() (the function in which I\nmade the change) and submitted patches, which were in turn reviewed\nby Ævar and he submitted changes in response to that.\n\nI now think that I should have replied to the review and taken part\nin the discussion, leading to me learning something more, but I was\nso overwhelmed that I didn’t do it. I corrected this in my later patches.\n\nMailing list:\nhttps://lore.kernel.org/git/20221116163956.1039137-1-five231003@gmail.com/\n\n[PATCH] merge: use reverse_commit_list() for list reversal\n(Microproject)\nStatus: Discontinued\nDescription:\nThis was a change I did to address the issue #1156 on gitgitgadget.\nThis was however not a correct change logic wise because the\nreverse_commit_list() function modifies the list in-place (that is,\nuses the elements of the original list to make the reversed list)\nsuch a modification could break merge if we had multiple merge strategies.\n\nMailing list:\nhttps://lore.kernel.org/git/20230202165137.118741-1-five231003@gmail.com/\n\n[PATCH] commit: warn the usage of reverse_commit_list() helper\nStatus: Discontinued\nDescription:\nThis change was made based on the preceding patch but according to the\nreview it seems that such an addition to the comment was unnecessary\nas the original comment was clear enough.\n\nMailing list:\nhttps://lore.kernel.org/git/20230207150359.177641-1-five231003@gmail.com/\n\n[PATCH v4] index-pack: remove fetch_if_missing=0\nStatus: Discontinued\nDescription:\nThis change strove to remove the use of fetch_if_missing in index-pack\nby replacing has_object_file() with has_object() which does not\nlazy-fetch when an object is missing in a partial clone. A test was\nalso added to make sure that this change did not lazy-fetch.\n\nThis patch was discontinued because it was decided as a result of\ndiscussion that it would be better to check all the cases where\nfetch_if_missing is set to 1 and make changes there so that we either\nfetch efficiently or not fetch at all. By doing this, in the final\nworld-view, we can remove fetch_if_missing from index-pack as it\nwould be set to zero everywhere.\n\nMailing list:\nhttps://lore.kernel.org/git/20230317175601.4250-1-five231003@gmail.com/\n\nProposed Project\n================\nGoal\n====\nThe goal of this project is, as the title says, unifying ref-filter\nformats with other pretty formats. It would be great to have a single\ninterface, which took care of all the formatting and not have different\nlogic to implement different formatting options. Quoting from the mailing\nlist discussion\n\nhttps://lore.kernel.org/git/CAL21BmnU2aTT_8iqejurgKeHXk-kmmGK1tmXLcVh7G12rwRPOw@mail.gmail.com/\n\n“For example, 'short' in pretty means 'commit %(objectname)%0aAuthor: %(author)'\nin ref-filter”\n\nPrevious Work\n=============\nThere has been much work done in the past in this area. It majorly comes\nfrom previous Outreachy interns and GSoC students.\n\nOlga Telezhnaia <olyatelezhnaya@gmail.com> did work in this area in the\nfields of `cat-file` and `ref-filter` as a part of her Outreachy Internship\ntitled “Unifying Git’s format languages”. This work and also the work done\nafter that helped take ref-filter to a more general setting. She blogged\nabout her work here\n\nhttps://medium.com/@olyatelezhnaya\n\n\nHariom Verma <hariom18599@gmail.com> did work in this area as his GSoC\nproject titled “Unify ref-filter formats with other --pretty formats”.\nThis is the major work done in this area and the final report can be\nread at\n\nhttps://harry-hov.github.io/blogs/posts/the-final-report\n\nThis work is very useful as this serves as a kind of documentation\nand starting point to work towards the goal.\n\nZheNing Hu <adlternative@gmail.com> has done major work under his GSoC\nproject titled “Use ref-filter formats in git cat-file” in the area of\ngit cat-file, but more relevant to this project are the changes done to\nref-filter. This work was a continuation of Olga’s work and made some\nchanges to ref-filter logic. His final report can be read here\n\nhttps://github.com/adlternative/adlternative.github.io/blob/gh-pages/blogs/gsoc/GSOC-Git-Final-Blog.md\n\nNsengiyumva Wilberforce <nsengiyumvawilberforce@gmail.com> did work in\nthis area where he implemented an equivalent atom of`signature` of pretty\nin ref-filter, so that in the future we can remove duplicate implementations.\nThis work can be read here\n\nhttps://lore.kernel.org/git/20230311210607.64927-1-nsengiyumvawilberforce@gmail.com/\n\nDifficulties\n============\nA major difficulty is backward compatibility, so any changes made to\nremove the duplicated logic would need to be done so very carefully.\nAny new tests added must also be very precise so as to efficiently\ntest the changes that are made.\n\nThere are also minor difficulties, such as the older tests failing\nbecause of the changes made, so the work will have to be in such a way\nthat those tests are successful and the duplicated logic is refactored.\n\nThe Plan\n========\nI think Hariom’s final report of his GSoC project is a good starting\npoint for working on the project. The report lists the work which is\nleft in the “WHATS LEFT?” section, so I think the first issue to work\non would be his branch\n\nhttps://github.com/harry-hov/git/commits/pretty-lib-2.0.2\n\nAlso carefully look for stuff in this branch that have potential and\ndiscuss them with my mentors.\n\nI can take the approach similar to what others did before me, that is\nby starting off with re-implementing atoms that are in pretty, in\nref-filter which will help our end goal of removing duplicated logic\nwherever possible. \n\nEstimated Timeline\n==================\n\nMisc\nApril 5 to May 3\n- Continue to work on git and get more familiar with the code.\n\n- Find and fix stuff.\n\n- Work on stuff that interests me.\n\nCommunity Bonding\nMay 4 to May 28\n- Get myself familiar with the code of ref-filter.{c, h} and\n  pretty.{c, h}.\n\n- Communicate with my mentors about the approaches that can\n  be taken to get to the goal.\n\n- Reading Hariom's branches [1] and discussing with mentors\n  about the possible approaches that can be taken and also if\n  there could be work done on his branches or taken from his\n  branches for future work.\n\nCoding Phase I\nMay 29 to July 14\n- Re-implement atoms that are in pretty in ref-filter.\n\n- Update existing tests and add new tests.\n\n- Update documentation.\n\nCoding Phase II\nJuly 14 to August 21\n- Further convert formatting options to reuse ref-filter formatting\n  logic and teach pretty to handle them.\n\n- Update existing tests and add new tests.\n\n- Update documentation.\n\nFinal Coding Phase\nAugust 21 to August 28\n- Wrap up and fix bugs (if any).\n\n- Update about the remaining stuff (if any).\n\n- Make a final report outlining future work.\n\n[1]: https://github.com/harry-hov/git/commits/pretty-lib-2.0.3\n     https://github.com/harry-hov/git/commits/fix-graph3\n\nBlogging about Git\n==================\nI think blogging is one of the important parts of any project. It\nhelps other people understand what one is doing and helps the person\nget to a better understanding of their work. I will blog about the\nproject every week, the blogs can be read at\n\nhttps://five-sh.github.io/\n\nAvailability\n============\nI will be having my semester mostly throughout the summer and so will\nbe able to work 35-40 hours per week. I will always be able to dedicate\nmore time towards the project on the weekends.\n\nI will be in contact through my email and my phone.\n\nI am also open to calls and online meets.\n\nPost GSoC\n=========\nI love being a part of the Git community. The whole process of getting\nto work on git’s code, submitting patches and getting reviews is a new\nand great experience for me. I plan to continue in the community after\nGSoC too and will continue contributing to git and will continue learning\nfrom all of you.\n\nI am also open to co-mentoring or mentoring if ever given the chance.\n\nI also am very interested in partial clones and I hope to work in that\narea.\n\nClosing (optional)\n==================\nEver since I first got into git’s code and its community back in 2022,\nit has evolved into a very unique and great experience for me. I have\nlearned so much in the past few months and will continue to do so from\nall of you here at git.\n\nHariom's proposal has been a great resource in writing this proposal.\n\nThanks & Regards,\nKousik Sanagavarapu\n"}]}