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

[PATCH] docs: clarify git diff modes of operation

From
Jeff King <peff@peff.net>
Date
Nov 4, 2010, 21:17 UTC
Message-ID
<20101104211729.GA5551@sigill.intra.peff.net>
In-Reply-To
<20101104204304.GA4641@sigill.intra.peff.net>

It is an oversimplification to say that we can take "[<commit> [<commit>]]", as it really depends on what options have been given. Instead, let's list the major modes of operation separately, as we do in other manpages.

This patch also adjusts the text immediately after the synopsis to match the lines given in the synopsis.

For git-difftool, which has the same issue, let's refer the user to the git-diff manpage rather than spelling it all out again.

Signed-off-by: Jeff King <peff@peff.net>
---
On Thu, Nov 04, 2010 at 04:43:04PM -0400, Jeff King wrote:
Show 8 quoted lines
> > So AIUI the patch can still be applied and we/you can then work on
> > improving the usage string in other ways -- providing that we agree that
> > the {M,N} notation should go, of course, which we apparently still
> > don't?
> 
> My main argument against that would be that if we are planning on
> changing it to something totally different right now anyway, your patch
> will just end up making textual conflicts for Junio to resolve. :)

I had intially thought I would tweak all three sites that you did, but after thinking about it, I really just want to change the one in Documentation/git-diff.txt. Which turned my patch into a mix of two different changes, and means it probably should just go on top of yours.

So here is my patch, which should apply on top of yours.

Note that in all versions (the original, yours, and mine) we gloss over the fact that <commit> can actually be any two objects (as long as they are bother either tree-ishs or blobs). I'm not sure if it is worth documenting that subtlety here (at least the tree-ish thing gets mentioned later in the description; I'm not sure we ever document "git diff HEAD:Makefile HEAD^:Makefile" anywhere).

Jonathan, does this look ok based on our earlier discussion?
 Documentation/git-diff.txt     |   11 ++++++++---
 Documentation/git-difftool.txt |    3 ++-
 2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/Documentation/git-diff.txt b/Documentation/git-diff.txt
index 61728f6..f6ac847 100644
--- a/Documentation/git-diff.txt
+++ b/Documentation/git-diff.txt
@@ -8,12 +8,17 @@ git-diff - Show changes between commits, commit and working tree, etc
 
 SYNOPSIS
 --------
-'git diff' [<common diff options>] [<commit> [<commit>]] [--] [<path>...]
+[verse]
+'git diff' [options] [<commit>] [--] [<path>...]
+'git diff' [options] --cached [<commit>] [--] [<path>...]
+'git diff' [options] <commit> <commit> [--] [<path>...]
+'git diff' [options] [--no-index] [--] <path> <path>
 
 DESCRIPTION
 -----------
-Show changes between two trees, a tree and the working tree, a
-tree and the index file, or the index file and the working tree.
+Show changes between the working tree and the index or a tree, changes
+between the index and a tree, changes between two trees, or changes
+between two files on disk.
 
 'git diff' [--options] [--] [<path>...]::
 
diff --git a/Documentation/git-difftool.txt b/Documentation/git-difftool.txt
index a02e3b5..6fffbc7 100644
--- a/Documentation/git-difftool.txt
+++ b/Documentation/git-difftool.txt
@@ -13,7 +13,8 @@ DESCRIPTION
 -----------
 'git difftool' is a git command that allows you to compare and edit files
 between revisions using common diff tools.  'git difftool' is a frontend
-to 'git diff' and accepts the same options and arguments.
+to 'git diff' and accepts the same options and arguments. See
+linkgit:git-diff[1].
 
 OPTIONS
 -------
-- 
1.7.3.2.218.g4ee9d
Previous: Jeff KingNext: Jonathan Nieder
Message 24 of 43 in “Unify argument and option notation in the docs”
  1. Unify argument and option notation in the docsŠtěpán Němec, Oct 8, 2010
  2. Jonathan NiederOct 8, 2010
  3. Štěpán NěmecOct 8, 2010
  4. 0/6 Unify argument and option notation in the docsŠtěpán Němec, Oct 8, 2010
  5. Jonathan NiederOct 8, 2010
  6. Junio C HamanoOct 8, 2010
  7. Štěpán NěmecOct 8, 2010
  8. Jonathan NiederOct 21, 2010
  9. CodingGuidelines: Add a section on writing documentationŠtěpán Němec, Oct 24, 2010
  10. Mark LodatoOct 29, 2010
  11. Štěpán NěmecOct 29, 2010
  12. Sverre RabbelierOct 29, 2010
  13. Štěpán NěmecNov 1, 2010
  14. CodingGuidelines: Add a section on writing documentationŠtěpán Němec, Nov 4, 2010
  15. diff,difftool: Don't use the {0,2} notation in usage stringsŠtěpán Němec, Nov 4, 2010
  16. Sverre RabbelierNov 4, 2010
  17. Jeff KingNov 4, 2010
  18. Jonathan NiederNov 4, 2010
  19. Jeff KingNov 4, 2010
  20. Jonathan NiederNov 4, 2010
  21. Jeff KingNov 4, 2010
  22. Štěpán NěmecNov 4, 2010
  23. Jeff KingNov 4, 2010
  24. docs: clarify git diff modes of operationJeff King, Nov 4, 2010
  25. Jonathan NiederNov 4, 2010
  26. Mark LodatoNov 5, 2010
  27. Štěpán NěmecNov 4, 2010
  28. Štěpán NěmecNov 4, 2010
  29. 1/6 Use angles for placeholders consistentlyŠtěpán Němec, Oct 8, 2010
  30. 2/6 Fix odd markup in --diff-filter documentationŠtěpán Němec, Oct 8, 2010
  31. Jonathan NiederOct 8, 2010
  32. Štěpán NěmecOct 8, 2010
  33. Jonathan NiederOct 8, 2010
  34. Štěpán NěmecOct 8, 2010
  35. Jonathan NiederOct 8, 2010
  36. 3/6 Use parentheses and `...' where appropriateŠtěpán Němec, Oct 8, 2010
  37. 4/6 Remove stray quotes in --pretty and --format documentationŠtěpán Němec, Oct 8, 2010
  38. 5/6 Put a space between `<' and argument in pack-objects usage stringŠtěpán Němec, Oct 8, 2010
  39. 6/6 Fix {update,checkout}-index usage stringsŠtěpán Němec, Oct 8, 2010
  40. 0/2 pack-objects: use ALLOC_GROW in place of manual growthJonathan Nieder, Oct 8, 2010
  41. 1/2 Documentation: No argument of ALLOC_GROW should have side-effectsJonathan Nieder, Oct 8, 2010
  42. 2/2 pack-objects: use ALLOC_GROWJonathan Nieder, Oct 8, 2010
  43. 3/2 Allow side-effects in second argument to ALLOC_GROWJonathan Nieder, Oct 8, 2010

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.