[GSoC][RFC] Proposal: Improve consistency of sequencer commands

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux