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

Document change in format of raw diff output format

From
Greg Hurrell <greg@hurrell.net>
Date
Nov 22, 2018, 10:58 UTC
Message-ID
<20181122105836.GA36193@retiro.local>
I was troubleshooting some breakage in some code that consumes the output of `git log --raw` and looking on two machines with different versions of Git just now I discovered the output format has changed somewhere between v2.14.5:
:000000 100644 000000000... 9773b7718... A      content/snippets/1157.md
and v2.19.0:
:000000 100644 000000000 9773b7718 A    content/snippets/1157.md
A quick search turns up some patches related to the GIT_PRINT_SHA1_ELLIPSIS env variable, which can be used to force the old output format, and which landed in v2.16.0, I think.
Does it sound right that we should update the documentation in diff-format.txt to show what the new output format is? The examples all show the old output format, which isn't produced by default any more.
Something like the following? If the answer is yes, I can turn it into a real patch.

Cheers, Greg

diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt
index 706916c94c..33776459d0 100644
--- a/Documentation/diff-format.txt
+++ b/Documentation/diff-format.txt
@@ -26,12 +26,12 @@ line per changed file.
 An output line is formatted this way:

 ------------------------------------------------
-in-place edit  :100644 100644 bcd1234... 0123456... M file0
-copy-edit      :100644 100644 abcd123... 1234567... C68 file1 file2
-rename-edit    :100644 100644 abcd123... 1234567... R86 file1 file3
-create         :000000 100644 0000000... 1234567... A file4
-delete         :100644 000000 1234567... 0000000... D file5
-unmerged       :000000 000000 0000000... 0000000... U file6
+in-place edit  :100644 100644 bcd123456 012345678 M file0
+copy-edit      :100644 100644 abcd12345 123456789 C68 file1 file2
+rename-edit    :100644 100644 abcd12345 123456789 R86 file1 file3
+create         :000000 100644 000000000 123456789 A file4
+delete         :100644 000000 123456789 000000000 D file5
+unmerged       :000000 000000 000000000 000000000 U file6
 ------------------------------------------------

 That is, from the left to the right:
@@ -75,7 +75,7 @@ and it is out of sync with the index.
 Example:

 ------------------------------------------------
-:100644 100644 5be4a4...... 000000...... M file.c
+:100644 100644 5be4a4abc 000000000 M file.c
 ------------------------------------------------

 Without the `-z` option, pathnames with "unusual" characters are
@@ -100,7 +100,7 @@ from the format described above in the following way:
 Example:

 ------------------------------------------------
-::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM     describe.c
+::100644 100644 100644 fabadb827 cc95eb0f2 4866510ea MM        describe.c
 ------------------------------------------------

 Note that 'combined diff' lists only files which were modified from
Next: Jeff King
Message 1 of 7 in “Document change in format of raw diff output format”
  1. Greg HurrellNov 22, 2018
  2. Jeff KingNov 22, 2018
  3. Greg HurrellNov 23, 2018
  4. doc: update diff-format.txt for removed ellipsesGreg Hurrell, Nov 23, 2018
  5. Junio C HamanoNov 24, 2018
  6. doc: update diff-format.txt for removed ellipses in --rawGreg Hurrell, Nov 24, 2018
  7. Junio C HamanoNov 26, 2018

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.