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

Re: [PATCH v4 03/19] ref-filter: implement '--points-at' option

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Jun 22, 2015, 22:36 UTC
Message-ID
<CAPig+cRGWG=L0JmSEtnxAyV=NTsq281Ot7E85HB4buDnMPHc1Q@mail.gmail.com>
In-Reply-To
<1434919705-4884-3-git-send-email-karthik.188@gmail.com>
On Sun, Jun 21, 2015 at 4:48 PM, Karthik Nayak <karthik.188@gmail.com> wrote:
Show 38 quoted lines
> In 'tag -l' we have '--points-at' option which lets users
> list only tags which point to a particular commit. Implement
> this option in 'ref-filter.{c,h}' so that other commands can
> benefit from this.
>
> This is duplicated from tag.c, we will eventually remove that
> when we port tag.c to use ref-filter APIs.
>
> Based-on-patch-by: Jeff King <peff@peff.net>
> Mentored-by: Christian Couder <christian.couder@gmail.com>
> Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
> Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
> ---
> diff --git a/builtin/tag.c b/builtin/tag.c
> index e36c43e..280981f 100644
> --- a/builtin/tag.c
> +++ b/builtin/tag.c
> @@ -56,6 +56,10 @@ static int match_pattern(const char **patterns, const char *ref)
>         return 0;
>  }
>
> +/*
> + * This is currently duplicated in ref-filter.c, and will eventually be
> + * removed as we port tag.c to use the ref-filter APIs.
> + */
>  static const unsigned char *match_points_at(const char *refname,
>                                             const unsigned char *sha1)
>  {
> diff --git a/ref-filter.c b/ref-filter.c
> index 43502a4..591e281 100644
> --- a/ref-filter.c
> +++ b/ref-filter.c
> @@ -842,6 +842,29 @@ static int match_name_as_path(const char **pattern, const char *refname)
>         return 0;
>  }
>
> +/*
> + * Given a ref (sha1, refname) see if it points to a one of the sha1s
s/a one/one/
Show 20 quoted lines
> + * in a sha1_array.
> + */
> +static int match_points_at(struct sha1_array *points_at, const unsigned char *sha1,
> +                          const char *refname)
> +{
> +       struct object *obj;
> +
> +       if (!points_at || !points_at->nr)
> +               return 1;
> +
> +       if (sha1_array_lookup(points_at, sha1) >= 0)
> +               return 1;
> +
> +       obj = parse_object_or_die(sha1, refname);
> +       if (obj->type == OBJ_TAG &&
> +           sha1_array_lookup(points_at, ((struct tag *)obj)->tagged->sha1) >= 0)
> +               return 1;
> +
> +       return 0;
> +}
Previous: Karthik NayakNext: Karthik Nayak
Message 5 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.