git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [GSoC] Unify ref-filter formats with other --pretty formats

From
Thomas Gummerer <t.gummerer@gmail.com>
Date
Mar 31, 2019, 18:49 UTC
Message-ID
<20190331184930.GV32487@hank.intra.tgummerer.com>
In-Reply-To
<CAMknYEPN2rPsX8CcJVosi-S1W8bLTmMMvgS8E-SwyR74gevtcA@mail.gmail.com>
On 03/31, Kapil Jain wrote:
Show 22 quoted lines
> On Fri, Mar 29, 2019 at 7:23 PM Kapil Jain <jkapil.cs@gmail.com> wrote:
> >
> > On Thu, Mar 28, 2019 at 11:14 PM Olga Telezhnaya
> > <olyatelezhnaya@gmail.com> 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.

Previous: Kapil JainNext: Kapil Jain
Message 7 of 9 in “[GSoC] Unify ref-filter formats with other --pretty formats”
  1. Kapil JainMar 25, 2019
  2. Olga TelezhnayaMar 25, 2019
  3. Kapil JainMar 27, 2019
  4. Olga TelezhnayaMar 28, 2019
  5. Kapil JainMar 29, 2019
  6. Kapil JainMar 31, 2019
  7. Thomas GummererMar 31, 2019
  8. Kapil JainApr 1, 2019
  9. Olga TelezhnayaMar 31, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.