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

Re: [PATCH v3 05/11] ref-filter: add parse_opt_merge_filter()

From
karthik nayak <karthik.188@gmail.com>
Date
Jun 17, 2015, 19:12 UTC
Message-ID
<CAOLa=ZQ-4VGunAAjrN6KPgA5hEg8JFhCrb-pobGitydeB9pNLg@mail.gmail.com>
In-Reply-To
<vpqzj3yzqma.fsf@anie.imag.fr>

On Wed, Jun 17, 2015 at 1:57 PM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:

Show 18 quoted lines
> Err, for-each-ref already uses it before this series, no?
>
> So, you don't need any extra option to get for-each-ref, because it is
> already there. Having these extra options is a good side effect, though.
>
> To make sure I'm clear enough, what you're doing is
>
> - add all options to for-each-ref
> - port tag.c
> - port branch.c
>
> What I'm suggesting is to prioritize this way
>
> - add all options required for tag.c
> - port tag.c
> - add all options required for branch.c
> - port branch.c
>
I meant somewhat on those lines only.  Let me clear that out.
The steps I plan to take are:
1. Move code from for-each-ref to ref-filter.
2. Add options to ref-filter which is available in tag.c and branch.c
(--points-at, --contains, --merged)
3. Add there options to for-each-ref.
4. Add options required for functioning of tag.c alone to ref-filter
5. Port tag.c
6. Add options required for functioning of branch.c alone to ref-filter
7. Port branch.c

Now why i want to complete step 2 right after 1 is so that while porting tag.c and branch.c I do not want to focus on making those common options available. Because I rather work on getting their specific options (verbose in branch.c, -n in tag.c and so on) working before porting over tag.c/branch.c.

Show 13 quoted lines
>
> Not only the challenge, but also the way to validate your work. Think of
> it as a rather comprehensive set of tests that you get for free once you
> ported a command.
>
> BTW, talking about tests, did you do some coverage analysis on git
> branch and git tag? If not, I'd suggest that you do this to make sure
> that the pieces of code you're rewritting using ref-filter are well
> tested before being rewritten (a bit like Paul's work on shell -> C).
> You don't have to actually do this before porting, but it should come
> befor the port in the patch series to make sure that tests pass both the
> old and new implementation.
>
Yes good point.

I did not do a deep coverage analysis on git tag and its tests. You are right this would be a crucial step for porting. I had a glance over the tests. Will look into it. As for git branch I'll do that after porting tag.c over to using ref-filter.

-- 
Regards,
Karthik Nayak
Previous: Matthieu MoyNext: Karthik Nayak
Message 12 of 23 in “add options to for-each-ref”
  1. 00/11 add options to for-each-refkarthik nayak, Jun 16, 2015
  2. 01/11 t6301: for-each-ref tests for ref-filter APIsKarthik Nayak, Jun 16, 2015
  3. 02/11 tag: libify parse_opt_points_at()Karthik Nayak, Jun 16, 2015
  4. 03/11 ref-filter: implement '--points-at' optionKarthik Nayak, Jun 16, 2015
  5. 04/11 for-each-ref: add '--points-at' optionKarthik Nayak, Jun 16, 2015
  6. Matthieu MoyJun 16, 2015
  7. karthik nayakJun 16, 2015
  8. 05/11 ref-filter: add parse_opt_merge_filter()Karthik Nayak, Jun 16, 2015
  9. Matthieu MoyJun 16, 2015
  10. karthik nayakJun 16, 2015
  11. Matthieu MoyJun 17, 2015
  12. karthik nayakJun 17, 2015
  13. 06/11 ref-filter: implement '--merged' and '--no-merged' optionsKarthik Nayak, Jun 16, 2015
  14. Matthieu MoyJun 17, 2015
  15. karthik nayakJun 17, 2015
  16. 07/11 for-each-ref: add '--merged' and '--no-merged' optionsKarthik Nayak, Jun 16, 2015
  17. 08/11 parse-option: rename parse_opt_with_commit()Karthik Nayak, Jun 16, 2015
  18. 09/11 parse-options.h: add macros for '--contains' optionKarthik Nayak, Jun 16, 2015
  19. 10/11 ref-filter: implement '--contains' optionKarthik Nayak, Jun 16, 2015
  20. 11/11 for-each-ref: add '--contains' optionKarthik Nayak, Jun 16, 2015
  21. Matthieu MoyJun 17, 2015
  22. Matthieu MoyJun 16, 2015
  23. karthik nayakJun 16, 2015

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.