Re: [PATCH] bisect: display first bad commit without forking a new process

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

 



Le Wednesday 27 May 2009, Christian Couder a écrit :
> Previously "git diff-tree --pretty COMMIT" was run using
> "run_command_v_opt" to display information about the first bad
> commit.
>
> The goal of this patch is to avoid a "fork" and an "exec" call
> when displaying that information.
>
> To do that, we manually setup revision information as
> "git diff-tree --pretty" would do it, and then use the
> "log_tree_commit" function.
>
> Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx>
> ---
>  bisect.c |   30 +++++++++++++++++++++++++++---
>  1 files changed, 27 insertions(+), 3 deletions(-)
>
> diff --git a/bisect.c b/bisect.c
> index c43c120..e94a77b 100644
> --- a/bisect.c
> +++ b/bisect.c
> @@ -7,6 +7,7 @@
>  #include "quote.h"
>  #include "sha1-lookup.h"
>  #include "run-command.h"
> +#include "log-tree.h"
>  #include "bisect.h"
>
>  struct sha1_array {
> @@ -27,7 +28,6 @@ struct argv_array {
>  	int argv_alloc;
>  };
>
> -static const char *argv_diff_tree[] = {"diff-tree", "--pretty", NULL,
> NULL}; static const char *argv_checkout[] = {"checkout", "-q", NULL,
> "--", NULL}; static const char *argv_show_branch[] = {"show-branch",
> NULL, NULL};
>
> @@ -816,6 +816,31 @@ static void check_good_are_ancestors_of_bad(const
> char *prefix) }
>
>  /*
> + * This does "git diff-tree --pretty COMMIT" without one fork+exec.
> + */
> +static void show_diff_tree(const char *prefix, struct commit *commit)
> +{
> +	static struct rev_info opt;

Oops, "static" can be removed, it's a copy-paste error, sorry.

Thanks,
Christian.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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]