Re: [RFC PATCH v2 11/13] walken: add filtered object walk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 26, 2019 at 7:51 PM Emily Shaffer <emilyshaffer@xxxxxxxxxx> wrote:
> Demonstrate how filter specs can be used when performing a revision walk
> of all object types. In this case, tree depth is used. Contributors who
> are following the revision walking tutorial will be encouraged to run
> the revision walk with and without the filter in order to compare the
> number of objects seen in each case.
>
> Signed-off-by: Emily Shaffer <emilyshaffer@xxxxxxxxxx>
> ---
> diff --git a/builtin/walken.c b/builtin/walken.c
> @@ -143,6 +144,10 @@ static void walken_show_object(struct object *obj, const char *str, void *buf)
>  static void walken_object_walk(struct rev_info *rev)
>  {
> +       struct list_objects_filter_options filter_options = {};
> +
> +       printf("walken_object_walk beginning...\n");

Is this debugging code which you accidentally left in? Or is it meant
to use trace_printf()? Or something else? If it is a genuine message,
should it be localizable?

> @@ -157,7 +162,24 @@ static void walken_object_walk(struct rev_info *rev)
>         blob_count = 0;
>         tree_count = 0;
>
> -       traverse_commit_list(rev, walken_show_commit, walken_show_object, NULL);
> +       if (1) {
> +               /* Unfiltered: */

The subject talks about adding a _filtered_ object walk (which is in
the 'else' arm), so should this be "if (0)" instead?

> +               trace_printf(_("Unfiltered object walk.\n"));
> +               traverse_commit_list(rev, walken_show_commit,
> +                               walken_show_object, NULL);
> +       } else {
> +               trace_printf(_("Filtered object walk with filterspec "
> +                               "'tree:1'.\n"));
> +               /*
> +                * We can parse a tree depth of 1 to demonstrate the kind of
> +                * filtering that could occur during various operations (see
> +                * `git help rev-list` and read the entry on `--filter`).
> +                */
> +               parse_list_objects_filter(&filter_options, "tree:1");
> +
> +               traverse_commit_list_filtered(&filter_options, rev,
> +                       walken_show_commit, walken_show_object, NULL, NULL);
> +       }



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux