Re: [PATCH/RFC] diff: Make numstat machine friendly also for renames

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

 



Jakub Narebski <jnareb@xxxxxxxxx> writes:

> Instead of saving human readable rename information in the 'name'
> field when diffstat info is generated, do it when writing --stat
> output. Change --numstat output to be machine friendly.
>
> This makes result of git-diff --numstat more suitable for machines
> also when renames are involved, by using format similar to the one for
> renames in the raw diff format, instead of the format more suited for
> humans.
>
> The numstat format for rename is now
>
>   added deleted TAB path for "src" TAB path for "dst" LF
>
> or if -z option is used
>
>   added deleted TAB path for "src" NUL NUL path for "dst" NUL

Why two NULs?

There are already a handful in-tree users of --numstat, and also
a few tests scripts.  I think you would need to adjust them.

> The goal of this change is to make it possible to generate HTML
> diffstat against first parent for merge commits in gitweb. The current
> notation for renames, which looks for example like below:
>
>   t/{t6030-bisect-run.sh => t6030-bisect-porcelain.sh}

I do not have much objection against teaching --numstat to show
the preimage pathnames.  I do not disagree with "the goal" of
showing "git diff --stat -M $commit^1 $commit" even for merge
commit.

But I do not see the connection between the two.  Why aren't you
parsing --summary?

Have you actually _tested_ your patch?

> @@ -949,11 +955,19 @@ static void show_numstat(struct diffstat_t* data,
>  			printf("-\t-\t");
>  		else
>  			printf("%d\t%d\t", file->added, file->deleted);
> -		if (options->line_termination && !file->is_renamed &&
> +		if (options->line_termination &&
>  		    quote_c_style(file->name, NULL, NULL, 0))
>  			quote_c_style(file->name, NULL, stdout, 0);
>  		else
>  			fputs(file->name, stdout);
> +		if (file->is_renamed) {
> +			printf("%s", options->line_termination ? "\t" : "\0\0");

I know you marked it as RFC; but it is impolite to request
comments from other people on a patch that does not do what you
intended to do, without marking "this is untested".  It would
waste people's time.

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