Hey People I am Rohit Ashiwal and here my first draft of the proposal for the project titled: `Improve consistency of sequencer commands' this summer. I need your feedback and more than that I need help to improve the timeline of this proposal since it looks very weak. Basically, it lacks the "how" component as I don't know much about the codebase in detail. Thanks Rohit PS: Point one is missing in the timeline from the ideas page[0], can someone explain what exactly it wants? ###################################################################################### Improve consistency of sequencer commands ###################################################################################### About Me ======== Personal Information ---------------+----------------------------------------------------------------------- Name | Rohit Ashiwal Major | Computer Science and Engineering E-mail | rohit.ashiwal265@xxxxxxxxx IRC | __rohit Skype | rashiwal Ph no | [ ph_no ] Github | r1walz Linkedin | rohit-ashiwal Address | [ Address ] Postal Code | [ postal_code ] Time Zone | IST (UTC +0530) ---------------+----------------------------------------------------------------------- Background ---------- I am a sophomore at the Indian Institute of Technology Roorkee[1], pursuing my bachelor's degree in Computer Science and Engineering. I was introduced to programming at a very early stage of my life. Since then, Ive been trying out new technologies by taking up various projects and participating in contests. I am passionate about system software development and competitive programming, and I also actively contribute to open-source projects. At college, I joined the Mobile Development Group [MDG](2), IIT Roorkee - a student group that fosters mobile development within the campus. I have been an active part of the Git community since February of this year, contributing to git-for-windows. Dev-Env ------- I am fluent in C/C++, Java and Shell Scripting, otherwise, I can also program in Python, JavaScript. I use both Ubuntu 18.04 and Windows 10 x64 on my laptop. I prefer Linux for development unless the work is specific to Windows. VCS: git Editor: VS Code with gdb integrated Contributions to Open Source ============================ My contributions to open source have helped me gain experience in understanding the flow of any pre-written code at a rapid pace and enabled me to edit/add new features. List of Contributions at Git: ----------------------------- Status: Merge in next revision git/git: [Micro](3): Use helper functions in test script. Status: Merged git-for-windows/git: [#2077](4): [FIX] git-archive error, gzip -cn : command not found. Status: Merged git-for-windows/build-extra: [#235](5): installer: Fix version of installer and installed file. The Project: `Improve consistency of sequencer commands' ======================================================== Overview -------- git-sequencer was introduced by Stephan Beyer <s-beyer@xxxxxxx> as his GSoC 2008 project[6]. It executed a sequence of git instructions to <HEAD> or <branch> and the sequence was given by a <file> or through stdin. The git-sequencer wants to become the common backend for git-am, git-rebase and other git commands. The project was continued by Ramkumar <artagnon@xxxxxxxxx> in 2011[7], converting it to a builtin and extending its domain to git-cherry-pick. As of now, there are still some inconsistencies among these commands, e.g., there is no `--skip` flag in `git-cherry-pick` while one exists for `git-rebase`. This project aims to remove inconsistencies in how the command line options are handled. Points to work on: ------------------ - Add `git cherry-pick --skip` - Implement flags that am-based rebases support, but not interactive or merge based, in interactive/merge based rebases - [Bonus] Deprecate am-based rebases - [Bonus] Make a flag to allow rebase to rewrite commit messages that refer to older commits that were also rebased Proposed Timeline ----------------- + Community Bonding (May 6th - May 26th): - Introduction to community - Get familiar with the workflow - Study and understand the workflow and implementation of the project in detail + Phase 1 (May 27th - June 23rd): - Start with implementing `git cherry-pick --skip` - Write new tests for the just introduced flag(s) - Analyse the requirements and differences of am-based and other rebases flags + Phase 2 (June 24th - July 21st): - Introduce flags of am-based rebases to other kinds. - Add tests for the same. + Phase 3 (July 22th - August 19th): - Act on [Bonus] features - Documentation - Clean up tasks Relevant Work ============= Dscho and I had a talk on how a non-am backend should implement `git rebase --whitespace=fix`, which he warned may become a large project (as it turns out it is a sub-task in one of the proposed ideas[0]), we were trying to integrate this on git-for-windows first. Keeping warning in mind, I discussed this project with Rafael and he suggested (with a little bit uncertainty in mind) that I should work on implementing a git-diff flag that generates a patch that when applied, will remove whitespace errors which I am currently working on. Availability ============ My vacations start on 7 May and end on 15 July. The official GSoC period is from 6 May to 19 August. I can easily devote 40-45 hours a week until my college reopens and 35-40 hours per week after that. Im also free on the weekends and I intend to complete most of the work before my college reopens. Other than this project, I have no commitments/vacations planned for the summer. I shall keep my status posted to all the community members on a weekly basis and maintain transparency in the project. After GSoC ========== Even after the Google Summer of Code, I plan on continuing my contributions to this organization, by adding to my project and working on open issues or feature requests. With the community growing continuously, I feel responsible for all the projects Im a part of. Having picked up a lot of developing skills, my major focus would be to develop mentorship skills so that I can give back to this community by helping other people navigate around and reviewing their contributions. [0]: https://git.github.io/SoC-2019-Ideas/ [1]: https://www.iitr.ac.in/ [2]: http://mdg.iitr.ac.in/ [3]: https://public-inbox.org/git/20190303122842.30380-1-rohit.ashiwal265@xxxxxxxxx/ [4]: https://github.com/git-for-windows/git/pull/2077 [5]: https://github.com/git-for-windows/build-extra/pull/235 [6]: https://public-inbox.org/git/20080607220101.GM31040@xxxxxxxxxx-net/ [7]: https://public-inbox.org/git/20110403172054.GA10220@kytes/