Hi everyone,
Its almost a month since I have been selected as GSoC Student by Git. I explored and tried various stuff within git source code to think of a particular approach for my project.
Last week, I studied the flow of data within git log and git for-each-ref.
I think, to start (re)using ref-filter’s functions, pretty.c must need to understand ref-filter’s atoms…
And to understand atoms, pretty.c must need to support ref-filter’s structures.
Here are the few structures used by pretty.c
- Cannot stop using this, but good candidate to make transition table
- All pp_* functions depends on this. But I guess some fields can be ditched in favour of using ref-filter’s [might need to modify pp_* functions too]
- No equivalance present in ref-filter (Not even play much role in formatting logic)
Whats next?
I guess, I’m going to focus more on structures.
I see many part of ‘git log’ are using struct rev_info *revs and funtions are filling values in revs.
Its time to introduce struct ref_array to ‘pretty.c’.
So, we can start filling values in array.revs instead of revs.
struct ref_array {
int nr, alloc;
struct ref_array_item **items;
struct rev_info *revs;
} array;
This might be a good start point.
Thanks for reading!
Hariom