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 | [email protected]
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 <[email protected]> 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
<[email protected]>
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/[email protected]/
[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/[email protected]/
[7]: https://public-inbox.org/git/20110403172054.GA10220@kytes/