git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [GSoC proposal RFC] Improvements to git log
@ 2020-03-23 21:59 Parth Gala
  0 siblings, 0 replies; only message in thread
From: Parth Gala @ 2020-03-23 21:59 UTC (permalink / raw)
  To: Git Mailing List; +Cc: Johannes.Schindelin, christian.couder, peff, stolee

Hello everyone, Thanks for taking the time out to read my GSoC proposal. 
I would love to receive feedback on this. One question I have is that 
how should I contact my mentor(Christian Coulder) in the period from 
April 4 - April 26 stated below, which will be akin to the community 
bonding period for me, ie do the conversations take place on the mailing 
list or personal emails or any other medium ? Google docs : 
https://docs.google.com/document/d/1H06V1sjE2i74NtXihiDNnApvx0iMemU2RotHt0SeDCI/edit# 
-------------x--------------x----------------x--------------x---------------x---------- 
Improvements to git log

## Contact Information Name Parth Gala Major Electronics and 
Communications Engineering Email parthpgala@gmail.com Mobile No. 
+91-829-125-7343 Github ParthGala2k Linkedin Parth Gala IRC parth56 
Timezone IST (UTC +0530)

## Background
Hello, my name is Parth Gala, I am a sophomore majoring in Electronics 
and Communications Engineering at Dwarkadas J. Sanghvi College of 
Engineering.I have been programming since a few years now and have been 
inquisitive to learn more about new things in the field of Computer 
Science. I am proficient in C/C++, Java and Shell script and try to run 
redundant tasks using scripts.

## Work Environment
I use Vim as my primary code editor and GDB as the debugger. I have been 
using Linux(Ubuntu 18.04) as my primary operating system since two years 
now and was introduced to the world of open source about a year ago when 
I started to learn Git and Github and have gained sufficient familiarity 
with each of them.

## Motivation
I have been active in the git community since January this year. I was 
inspired to contribute open source since it is a great way to get 
started with making enterprise level software which is well documented 
and tested. Google Summer of Code is the best way to get kick started in 
that direction, and given I use git on a regular basis and would 
continue doing so, it would be a great experience contributing to it as 
well. ## Previous Contributions Contributing to git helped me realize 
how high quality software is developed by first
considering the design, adding unit tests and more importantly, about 
using git itself
better to maintain a neat commit history and tracking newer changes.

* Contributions to git

1. GitGitGadget https://github.com/gitgitgadget/git/pull/545
Mailing list 
https://lore.kernel.org/git/pull.545.git.1581535151.gitgitgadget@gmail.com/ 
Status Yet to be merged

2. GitGitGadget     https://github.com/gitgitgadget/git/pull/582 Status 
Being reviewed by Johannes Schindelin before submitting to mailing list 
<https://github.com/gitgitgadget/git/pull/582>

## Project * Abstract
`’git log’ is a frequently used command that displays commit history of 
the branch in various formats in order to make it easier to analyse the 
changes made to code over a course of time and using various flags that 
help you filter out only the commits that you need.

## Current Shortcomings 1. Although there are various options in git 
log, still a few are missing that many users would like for example “git 
log --oneline” shows the decorations right after the commit hash but 
before the commit message causing the alignment of messages to be 
disturbed. This can be overcome by setting a custom format string to 
print the decorations after the message. Having the decorations at the 
end has its own disadvantages, say, you only need to check the status of 
a branch rather than its contents, then you would prefer to have the 
decorations right next to the shortened commit hash. 2. Another 
desirable feature to have is a date line like ‘==DATE==’ in the log 
output right over the commits wherever a date changes.

## Goals
1. Create a --pretty=concise format to deal with the first issue. 2. 
Create a --log-day option to show date.

## Timeline Tentative

# April 4 - April 26
Discuss the compatibility of --log-day option with all other log options 
and finalise its design so as to be easily extended or modified for 
similar future enhancements such as --log-month or --log-day[range], 
--log-day[onwards] options and whether the option asks for author date 
or the commiter date upon Junio's advice and do the same for 
--pretty=concise. Also discussion of the stitching of these two 
options(output for when both are used together) shall be done in order 
to decide how the design should be done. At the same time go through as 
much of the relevant code in detail as possible for the said 
enhancements. I will be mostly unoccupied during this period and hope to 
complete largely all the ‘community bonding period’ work with my 
potential mentor Christian Coulder during this period itself.

## Community Bonding Period : April 26 - May 16
I will be having some submissions during the first few days of this 
period followed by my end semester exams which will start May 4 and end 
May 16. Since there are generous holidays between each paper, I intend 
to keep a check on my GSoC project and be in touch with Christian during 
this period for around 2 hours a day to depending on what needs to be 
discussed or finalised before the project starts. I also hope to 
finetune the project workflow and make timeline changes if necessary 
during this period.

## Phase 1 : May 18 - June 13
1. Complete the --pretty=concise format option. 2. Add tests and 
documentation for the same.

## Phase 2 : June 14 - July 28
1. Work on the --log-time option. 2. Add tests and documentation for the 
same.

## Phase 3 : July 29 - August 10
1. Implement usage of both the commands simultaneously. 2. Update tests 
for both the previous phases.

## Final Phase : August 10 - August 17
1. Polish the patches to apply final touch-ups(if any) 2. Update 
documentation. If there is any extra time left, I would like to discuss 
the viability and use of --log-month
option with the community and add it to the entire package if many users 
on the mailing
list would find that option useful to their workflow.

I plan to communicate with my mentors in the form of PRs against my own 
forkof the
project and also intend to keep the community updated with my progress 
in the form of
weekly reports on the mailing list and inform everyone involved in case 
of any changes to the timeline.

## Availability
I will be done with my mid-sems by April 4 following which I will be 
largely unoccupied for 3 weeks until April 26 in which period I plan to 
complete my obligations for the community bonding period. My end sems 
will start May 4 upto May 16, so I will be relatively busy for a week 
before it, but due to generous holidays between I will be able to work 
upto 2 hours on my GSoC Project. My vacations will start May 17 upto the 
second week of July, so during this period I will be easily able to 
devote 45-50 hours a week. Even after my college resumes, I will be able 
to contribute around 40 hours a week to the project. Apart from this I 
have no other commitments or plans for the summers barring the odd 
weekend trek ;-)

## Post GSoC
I would love to learn from such a rich community of developers who have 
built a tool that a majority of the software world uses on a daily 
basis. Needless to say that only the lure of the new features would also 
be enough to bring me back to the community again and again but I will 
still contribute to the community in code and discussions post GSoC, and 
if possible be a co-mentor someday ?

## Final Remarks
I am a quick learner with a knack of not giving up on problems. I can 
have a go at it all day long and learn everything necessary to git(get) 
the job done. Selected or not I will continue to hustle and contribute 
to git and other open source projects that interest me and improve 
myself and the planet little by little everyday. After all that’s what 
open source is all about !

-----------------x-------------x------------x-------------x-------------x--------------x-------------x--------- 



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-03-23 21:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-23 21:59 [GSoC proposal RFC] Improvements to git log Parth Gala

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).