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

Re: [PATCH/RFC] Do not show "diff --git" metainfo with --no-prefix

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 16, 2008, 01:46 UTC
Message-ID
<7vir1ubl0g.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<alpine.LSU.1.00.0801160133150.17650@racer.site>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 27 quoted lines
>> diff --git a/diff.c b/diff.c
>> index b18c140..8126a74 100644
>> --- a/diff.c
>> +++ b/diff.c
>> @@ -1246,30 +1258,46 @@ static void builtin_diff(const char *name_a,
>>  	char *a_one, *b_two;
>>  	const char *set = diff_get_color_opt(o, DIFF_METAINFO);
>>  	const char *reset = diff_get_color_opt(o, DIFF_RESET);
>> +	int is_git_diff = with_standard_prefix(o);
>>  
>>  	a_one = quote_two(o->a_prefix, name_a + (*name_a == '/'));
>>  	b_two = quote_two(o->b_prefix, name_b + (*name_b == '/'));
>>  	lbl[0] = DIFF_FILE_VALID(one) ? a_one : "/dev/null";
>>  	lbl[1] = DIFF_FILE_VALID(two) ? b_two : "/dev/null";
>> -	printf("%sdiff --git %s %s%s\n", set, a_one, b_two, reset);
>> +
>> +	if (!is_git_diff)
>> +		printf("%sIndex: %s%s\n", set, b_two, reset);
>> +	else
>> +		printf("%sdiff --git %s %s%s\n", set, a_one, b_two, reset);
>> +
>
> Hmm.  AFAICT plain diff outputs "diff ...", not "Index: ...".  IMHO doing 
> half of what SVN does, and half what GNU diff does, but not completely 
> what something else does, does not help anybody.
>
> So I'm mildly negative on this hunk.
You misread the intention of the patch.

This whole point of this RFC patch is about not labelling a non-git patch that results from --no-prefix with "diff --git". As I said in my reply to Daniel, I do not like "Index:" myself, and doing printf("diff %s %s\n", a_one, b_two) instead would be perfectly fine by me.

I do not mind keeping the metainformation such as rename/deleted labels in the output of non-git case (iow, dropping all the other hunks that pay attention to is_git_diff in the RFC patch). As long as the patch is not labelled with "diff --git", stricter checks in git-apply will not trigger, and it knows to skip these non-patch lines. Also a plain GNU patch would ignore those metainformation lines, so there is no strong reason to remove them from the output, unless somebody wants to use non patch non git tool that is stricter for no good reason (and I'd agree with you that the solution to such a tool is a postprocessing filter outside of git).

Previous: Johannes SchindelinNext: Johannes Schindelin
Message 18 of 53 in “[FEATURE REQUEST] git-svn format-patch”
  1. Chris OrtmanJan 15, 2008
  2. Johannes SchindelinJan 15, 2008
  3. Chris OrtmanJan 15, 2008
  4. Johannes SchindelinJan 15, 2008
  5. Chris OrtmanJan 15, 2008
  6. Johannes SchindelinJan 15, 2008
  7. Chris OrtmanJan 15, 2008
  8. Johannes SchindelinJan 15, 2008
  9. Chris OrtmanJan 15, 2008
  10. Jan HudecJan 15, 2008
  11. Miles BaderJan 16, 2008
  12. Shawn O. PearceJan 16, 2008
  13. Pascal ObryJan 15, 2008
  14. Daniel BarkalowJan 15, 2008
  15. Junio C HamanoJan 16, 2008
  16. Do not show "diff --git" metainfo with --no-prefixJunio C Hamano, Jan 16, 2008
  17. Johannes SchindelinJan 16, 2008
  18. Junio C HamanoJan 16, 2008
  19. Johannes SchindelinJan 16, 2008
  20. Daniel BarkalowJan 16, 2008
  21. Junio C HamanoJan 16, 2008
  22. Do not show "diff --git" metainfo with --no-prefixJunio C Hamano, Jan 16, 2008
  23. Linus TorvaldsJan 16, 2008
  24. Linus TorvaldsJan 16, 2008
  25. Daniel BarkalowJan 16, 2008
  26. Linus TorvaldsJan 16, 2008
  27. Junio C HamanoJan 16, 2008
  28. Daniel BarkalowJan 16, 2008
  29. Junio C HamanoJan 17, 2008
  30. Johannes SchindelinJan 17, 2008
  31. Junio C HamanoJan 17, 2008
  32. Johannes SchindelinJan 17, 2008
  33. Junio C HamanoJan 17, 2008
  34. Junio C HamanoJan 17, 2008
  35. Johannes SchindelinJan 17, 2008
  36. Junio C HamanoJan 17, 2008
  37. Johannes SchindelinJan 17, 2008
  38. Jeff KingJan 17, 2008
  39. Jeff KingJan 17, 2008
  40. Johannes SchindelinJan 17, 2008
  41. Jeff KingJan 17, 2008
  42. Junio C HamanoJan 18, 2008
  43. Junio C HamanoJan 16, 2008
  44. Daniel BarkalowJan 16, 2008
  45. Jan HudecJan 19, 2008
  46. Junio C HamanoJan 16, 2008
  47. Chris OrtmanJan 16, 2008
  48. Jean-Luc HerrenJan 15, 2008
  49. Chris OrtmanJan 15, 2008
  50. Daniel BarkalowJan 16, 2008
  51. Nigel MagnayMar 11, 2008
  52. Jan HudecMar 11, 2008
  53. Daniel BarkalowMar 12, 2008

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.