From: Karthik Nayak Date: Tue, 02 Jun 2015 16:38:57 GMT Subject: [GSoC] Week 1: Unification of 'for-each-ref', 'tag -l' and 'branch -l' Message-ID: <556DDC21.5050801@gmail.com> Hello All, As part of GSoC I'm working on the Unification of 'for-each-ref', 'tag -l' and 'branch -l'. I will update the list on my weekly progress in an effort to keep everyone updated. Current Progress: Currently I have been working on moving all code from 'for-each-ref' to an independent library called 'ref-filter' which would serve as a common library for the unification process. 'for-each-ref' supports printing the commits in a specified format and also various sorting optins. This would serve as a good base for porting over these options for 'tag -l' and 'branch -l'. I have sent v4 of my patch to the list and it can be found here: http://article.gmane.org/gmane.comp.version-control.git/270293 I have been working on this after suggested changes, will post the next version soon. Work In progress: You can follow my current progress on Github: https://github.com/KarthikNayak/git For now I got the '--points-at' option (prints only refs pointing to given commit) and also '--merged' option (prints only refs whose heads are reachable from the given commit). These shall be forwarded to the list soon. What to do next: Implement '--contains' option, but the problem to be faced here is that both 'tag -l' and 'branch -l' have different implementations of the '--contains' options. Matthieu Moy suggested that I work on the unification of these commands let both the implementations stay where the user can select the implementation to be used and that I may work on unification of these two algorithms after the main objective of GSoC is met. Any suggestion/changes are welcome. -- Regards, Karthik