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

Re: [PATCH v4 05/19] ref-filter: add parse_opt_merge_filter()

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 22, 2015, 00:55 UTC
Message-ID
<CAPc5daUkHb5sQ_d-g0EeFwXTkFUf4=PVV=QcV-nekObKSJL27g@mail.gmail.com>
In-Reply-To
<1434919705-4884-5-git-send-email-karthik.188@gmail.com>
On Sun, Jun 21, 2015 at 1:48 PM, Karthik Nayak <karthik.188@gmail.com> wrote:
> Add 'parse_opt_merge_filter()' to parse '--merged' and '--no-merged'
> options and write MACROS for the same.
Why SHOUT here?
>
> This is copied from 'builtin/branch.c' which will eventually be removed
> when we port 'branch.c' to use ref-filter APIs.

Hmph. I somehow thought Matthieu's instruction was to finish tag.c side first and then do branch (i.e. with 3 and 4 you brought things from tag to for-each-ref, now it is a time to rewrite tag by using what you wrote for for-each-ref with 3 and 4, before moving to this patch)? Was that plan scrapped or found inappropriate or something?

Show 11 quoted lines
> +int parse_opt_merge_filter(const struct option *opt, const char *arg, int unset)
> +{
> +       struct ref_filter *rf = opt->value;
> +       unsigned char sha1[20];
> +
> +       rf->merge = starts_with(opt->long_name, "no")
> +               ? REF_FILTER_MERGED_OMIT
> +               : REF_FILTER_MERGED_INCLUDE;
> +
> +       if (!arg)
> +               arg = "HEAD";

When does this trigger? You have lastarg-default with "HEAD", and I am having trouble guessing when "arg" upon entry to this function can ever be NULL.

> +       if (get_sha1(arg, sha1))
> +               die(_("malformed object name %s"), arg);
> +
> +       rf->merge_commit = lookup_commit_reference_gently(sha1, 0);

Can --merged (or --no-merged) be given more than once? Is the rule "the last one wins"? Does the old value of rf->merge_commit leak (no, it does not, but I am just asking for completeness)?

Previous: Karthik NayakNext: Matthieu Moy
Message 17 of 37 in “add options to for-each-ref”
  1. 00/11 add options to for-each-refKarthik Nayak, Jun 21, 2015
  2. 01/19 t6301: for-each-ref tests for ref-filter APIsKarthik Nayak, Jun 21, 2015
  3. 02/19 tag: libify parse_opt_points_at()Karthik Nayak, Jun 21, 2015
  4. 03/19 ref-filter: implement '--points-at' optionKarthik Nayak, Jun 21, 2015
  5. Eric SunshineJun 22, 2015
  6. Karthik NayakJun 23, 2015
  7. 04/19 for-each-ref: add '--points-at' optionKarthik Nayak, Jun 21, 2015
  8. Junio C HamanoJun 22, 2015
  9. Karthik NayakJun 22, 2015
  10. Matthieu MoyJun 22, 2015
  11. Junio C HamanoJun 22, 2015
  12. Karthik NayakJun 22, 2015
  13. Junio C HamanoJun 22, 2015
  14. Eric SunshineJun 22, 2015
  15. Karthik NayakJun 23, 2015
  16. 05/19 ref-filter: add parse_opt_merge_filter()Karthik Nayak, Jun 21, 2015
  17. Junio C HamanoJun 22, 2015
  18. Matthieu MoyJun 22, 2015
  19. Junio C HamanoJun 22, 2015
  20. Karthik NayakJun 22, 2015
  21. 06/19 ref-filter: implement '--merged' and '--no-merged' optionsKarthik Nayak, Jun 21, 2015
  22. Junio C HamanoJun 22, 2015
  23. Karthik NayakJun 22, 2015
  24. 07/19 for-each-ref: add '--merged' and '--no-merged' optionsKarthik Nayak, Jun 21, 2015
  25. Eric SunshineJun 22, 2015
  26. Karthik NayakJun 23, 2015
  27. 08/19 parse-option: rename parse_opt_with_commit()Karthik Nayak, Jun 21, 2015
  28. Junio C HamanoJun 22, 2015
  29. Karthik NayakJun 22, 2015
  30. Junio C HamanoJun 22, 2015
  31. Karthik NayakJun 22, 2015
  32. 09/19 parse-options.h: add macros for '--contains' optionKarthik Nayak, Jun 21, 2015
  33. 10/19 ref-filter: implement '--contains' optionKarthik Nayak, Jun 21, 2015
  34. 11/19 for-each-ref: add '--contains' optionKarthik Nayak, Jun 21, 2015
  35. Karthik NayakJun 21, 2015
  36. Junio C HamanoJun 22, 2015
  37. Karthik NayakJun 22, 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.