Subject: Re: [GSoC Project Help] Unifying git branch -l, git tag -l and git for-each-ref

From: Michael J Gruber <[email-masked]>
Date: Thu, 19 Mar 2015 13:58:17 +0100

Sundararajan R venit, vidit, dixit 19.03.2015 12:22:
> Hi all,
> 
> I am a Computer Science sophomore at IIT Kanpur. I am interested in 
> contributing to git in GSoC 2015. I have been using git for the past one year 
> and am pretty comfortable with its commands which is what made me think about 
> contributing to git. I have attempted the microproject “adding ‘-’ as a 
> shorthand to @{-1} in the reset command” [1] [2] from which I learnt about 
> how code is reviewed in the community and how a seemingly small change can 
> end up being much more difficult. But the thing I liked the most is the warm 
> and welcoming attitude of everyone in the community towards a newcomer like 
> me. I wish to take up the project idea “Unifying git branch -l, git tag -l 
> and git for-each-ref”. I am in the process of reading and understanding the 
> codes of these three commands and figuring out similarities and differences 
> in them. I have gone through some of the discussions regarding this on the 
> archive and have also read Junio’s reply to Amate Yolande [3], but I haven’t 
> been able to find patches which attempt to unify the selection process as 
> mentioned in the description of the idea. It would be great if someone could 
> point me towards these patches which would help me when I start designing the 
> details of the unified implementation. Thanks a lot for your time.
> 
> Regards,
> R Sundararajan. 
> 
> [1] : http://marc.info/?l=git&m=142666740415816&w=2
> [2] : http://marc.info/?l=git&m=142666773315899&w=2
> [3] : http://article.gmane.org/gmane.comp.version-control.git/264966

I don't think there have been actual attempts at unifying the "display"
part of the list modes. A first step would be:

Check what "tag -l" and "branch -l" output you can reproduce using
for-each-ref format strings.

Then see whether for-each-ref needs to expose more information about the
refs.

I wouldn't mind unifying the actual output format, but some will disagree.

As for the issue of ref selection (contains and such), the following
thread may be helpful:

http://thread.gmane.org/gmane.comp.version-control.git/252472

Cheers
Michael