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

[PATCH v3 2/2] diff: document the format of the -O (diff.orderFile) file

From
RHRichard Hansen <hansenr@google.com>
Date
Jan 15, 2017, 22:16 UTC
Message-ID
<20170115221631.78838-3-hansenr@google.com>
In-Reply-To
<20170115221631.78838-1-hansenr@google.com>
Signed-off-by: Richard Hansen <hansenr@google.com>
---
 Documentation/diff-config.txt  |  5 ++---
 Documentation/diff-options.txt | 34 ++++++++++++++++++++++++++++++++--
 2 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/Documentation/diff-config.txt b/Documentation/diff-config.txt
index 875212045..9e4111320 100644
--- a/Documentation/diff-config.txt
+++ b/Documentation/diff-config.txt
@@ -99,11 +99,10 @@ diff.noprefix::
 	If set, 'git diff' does not show any source or destination prefix.
 
 diff.orderFile::
-	File indicating how to order files within a diff, using
-	one shell glob pattern per line.
+	File indicating how to order files within a diff.
+	See the '-O' option to linkgit:git-diff[1] for details.
 	If `diff.orderFile` is a relative pathname, it is treated as
 	relative to the top of the work tree.
-	Can be overridden by the '-O' option to linkgit:git-diff[1].
 
 diff.renameLimit::
 	The number of files to consider when performing the copy/rename
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index e6215c372..d4fb70704 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -466,11 +466,41 @@ information.
 endif::git-format-patch[]
 
 -O<orderfile>::
-	Output the patch in the order specified in the
-	<orderfile>, which has one shell glob pattern per line.
+	Control the order in which files appear in the output.
 	This overrides the `diff.orderFile` configuration variable
 	(see linkgit:git-config[1]).  To cancel `diff.orderFile`,
 	use `-O/dev/null`.
++
+The output order is determined by the order of glob patterns in
+<orderfile>.
+All files with pathnames that match the first pattern are output
+first, all files with pathnames that match the second pattern (but not
+the first) are output next, and so on.
+All files with pathnames that do not match any pattern are output
+last, as if there was an implicit match-all pattern at the end of the
+file.
+If multiple pathnames have the same rank (they match the same pattern
+but no earlier patterns), their output order relative to each other is
+the normal order.
++
+<orderfile> is parsed as follows:
++
+--
+ - Blank lines are ignored, so they can be used as separators for
+   readability.
+
+ - Lines starting with a hash ("`#`") are ignored, so they can be used
+   for comments.  Add a backslash ("`\`") to the beginning of the
+   pattern if it starts with a hash.
+
+ - Each other line contains a single pattern.
+--
++
+Patterns have the same syntax and semantics as patterns used for
+fnmantch(3) without the FNM_PATHNAME flag, except a pathname also
+matches a pattern if removing any number of the final pathname
+components matches the pattern.  For example, the pattern "`foo*bar`"
+matches "`fooasdfbar`" and "`foo/bar/baz/asdf`" but not "`foobarx`".
 
 ifndef::git-format-patch[]
 -R::
-- 
2.11.0.483.g087da7b7c-goog
Previous: Richard Hansen
Message 24 of 24 in “minor diff orderfile documentation improvements”
  1. 0/2 minor diff orderfile documentation improvementsRichard Hansen, Jan 10, 2017
  2. 1/2 diff: document behavior of relative diff.orderFileRichard Hansen, Jan 10, 2017
  3. Jeff KingJan 10, 2017
  4. Richard HansenJan 10, 2017
  5. Junio C HamanoJan 10, 2017
  6. Junio C HamanoJan 10, 2017
  7. Richard HansenJan 10, 2017
  8. Junio C HamanoJan 10, 2017
  9. Jeff KingJan 11, 2017
  10. Junio C HamanoJan 11, 2017
  11. 2/2 diff: document the pattern format for diff.orderFileRichard Hansen, Jan 10, 2017
  12. Junio C HamanoJan 10, 2017
  13. Richard HansenJan 11, 2017
  14. Junio C HamanoJan 11, 2017
  15. Richard HansenJan 11, 2017
  16. Junio C HamanoJan 11, 2017
  17. Richard HansenJan 11, 2017
  18. Junio C HamanoJan 11, 2017
  19. 0/2 diff orderfile documentation improvementsRichard Hansen, Jan 11, 2017
  20. 1/2 diff: document behavior of relative diff.orderFileRichard Hansen, Jan 11, 2017
  21. 2/2 diff: document the format of the -O (diff.orderFile) fileRichard Hansen, Jan 11, 2017
  22. 0/2 diff orderfile documentation improvementsRichard Hansen, Jan 15, 2017
  23. 1/2 diff: document behavior of relative diff.orderFileRichard Hansen, Jan 15, 2017
  24. 2/2 diff: document the format of the -O (diff.orderFile) fileRichard Hansen, Jan 15, 2017

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.