On 03/31, Kapil Jain wrote: > On Fri, Mar 29, 2019 at 7:23 PM Kapil Jain <jkapil.cs@xxxxxxxxx> wrote: > > > > On Thu, Mar 28, 2019 at 11:14 PM Olga Telezhnaya > > <olyatelezhnaya@xxxxxxxxx> wrote: > > > > > > Unfortunately, I can't consult you properly about structure of > > > pretty.c. I guess that would be your first task of the internship to > > > dive into it and think how to improve it. By the way, you could try to > > > make more detailed documentation and that could be one of your first > > > contributions. It will help you to understand the system better, and > > > other contributors will be happy to read it. > > > > i traced the cmd_log() to understand the point at which pretty.c could > be used, i only got to userformat_find_requirements(). > > struct userformat_want { > unsigned notes:1; > unsigned source:1; > }; > > what are notes and source flags used for ? If you look at what userformat_find_requirements() does, calls strbuf_expand(), which in turn calls userformat_want_item(), which fills the 'userformat_want' struct based on the strbuf that has been passed. Now if we look at the caller of userformat_find_requirements(), which is cmd_log_init_finish(), you can see where 'w.notes' and 'w.source' is used. Just this parsing is probably not something that the ref-filter API can help too much with. I unfortunately don't have much experience with the pretty, or the ref-filter API. But rather than going into the details of the code already, I'd suggest first looking at what you actually want to replace (see for example the PRETTY FORMATS section in 'man git-log', what which verbs you can use in the ref-filter (see 'man git-for-each-ref') to achieve the same thing. Then you can see how one format is implemented in 'pretty.c', and see how a similar thing using the ref-filter is implemented in 'ref-filter.c'. E.g. the "%(objectname:short) %(contents:subject)" (this is missing coloring, but just to get you the idea) is similar to '--pretty=oneline'. Now you can try to find how 'oneline' is implemented in 'pretty.c', and you could translate that to use the 'ref-filter' API.