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

[PATCH] Documentation: revamp gitk(1)

From
Thomas Rast <trast@inf.ethz.ch>
Date
Oct 20, 2013, 16:57 UTC
Message-ID
<21f40508f83a9407986d29f002adf5ad366c8b88.1382287779.git.trast@inf.ethz.ch>
In-Reply-To
<20131014052547.GB25344@google.com>

The gitk manpage suffers from a bit of neglect: there have been only minor changes, and no changes to the set of options documented, since a2df1fb (Documentation: New GUI configuration and command-line options., 2008-11-13). In the meantime, the set of rev-list options has been expanded several times by options that are useful in gitk, e.g., --ancestry-path and the optional globbing for --branches, --tags and --remotes.

Restructure and expand the manpage. List more options that the author perceives as useful, while remaining somewhat terse. Ideally the user should not have to look up any of the references, but we dispense with precise explanations in some places and refer to git-log(1) instead.

Note that the options that have an easy GUI equivalent (e.g., --word-diff, -S, --grep) are deliberately not listed even in the cases where they simply fill in the GUI fields.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
---
Jonathan Nieder wrote:
> Support for just the sticked form is better than nothing, especially
> if the gitk(1) manpage gains a note about it.  In the long run I guess
> the ideal would be to add a parse-options-like library to the tcl
> support.

Ok. I'm generally not happy with the state of that manpage, so I took the chance to improve it (and include a note about sticked forms). The approach is really my own opinion; I ran a half-hearted attempt at an IRC survey but none of the willing victims had any 'gitk' invocations in their history.

I'll hold the gitk patches until we get this one sorted out, but then just do the sticked form as before.

 Documentation/gitk.txt | 107 ++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 83 insertions(+), 24 deletions(-)
diff --git a/Documentation/gitk.txt b/Documentation/gitk.txt
index c17e760..d44e14c 100644
--- a/Documentation/gitk.txt
+++ b/Documentation/gitk.txt
@@ -8,7 +8,7 @@ gitk - The Git repository browser
 SYNOPSIS
 --------
 [verse]
-'gitk' [<option>...] [<revs>] [--] [<path>...]
+'gitk' [<options>] [<revision range>] [\--] [<path>...]
 
 DESCRIPTION
 -----------
@@ -16,21 +16,38 @@ Displays changes in a repository or a selected set of commits. This includes
 visualizing the commit graph, showing information related to each commit, and
 the files in the trees of each revision.
 
-Historically, gitk was the first repository browser. It's written in tcl/tk
-and started off in a separate repository but was later merged into the main
-Git repository.
-
 OPTIONS
 -------
-To control which revisions to show, the command takes options applicable to
-the 'git rev-list' command (see linkgit:git-rev-list[1]).
-This manual page describes only the most
-frequently used options.
 
--n <number>::
---max-count=<number>::
+To control which revisions to show, gitk supports most options
+applicable to the 'git rev-list' command.  It also supports a few
+options applicable to the 'git diff-*' commands to control how the
+changes each commit introduces are shown.  Finally, it supports some
+gitk-specific options.
+
+gitk generally only understands options with arguments in the
+'sticked' form (see linkgit:gitcli[7]) due to limitations in the
+command line parser.
+
+rev-list options and arguments
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This manual page describes only the most frequently used options.  See
+linkgit:git-rev-list[1] for a complete list.
+
+--all::
+
+	Show all refs (branches, tags, etc.).
 
-	Limits the number of commits to show.
+--branches[=<pattern>]::
+--tags[=<pattern>]::
+--remotes[=<pattern>]::
+
+	Pretend as if all the branches (tags, remote branches, resp.)
+	are listed on the command line as '<commit>'. If '<pattern>'
+	is given, limit refs to ones matching given shell glob. If
+	pattern lacks '?', '{asterisk}', or '[', '/{asterisk}' at the
+	end is implied.
 
 --since=<date>::
 
@@ -40,9 +57,9 @@ frequently used options.
 
 	Show commits older than a specific date.
 
---all::
+--date-order::
 
-	Show all branches.
+	Sort commits by date when possible.
 
 --merge::
 
@@ -51,19 +68,37 @@ frequently used options.
 	that modify the conflicted files and do not exist on all the heads
 	being merged.
 
---argscmd=<command>::
-	Command to be run each time gitk has to determine the list of
-	<revs> to show.  The command is expected to print on its standard
-	output a list of additional revs to be shown, one per line.
-	Use this instead of explicitly specifying <revs> if the set of
-	commits to show may vary between refreshes.
+--left-right::
 
---select-commit=<ref>::
+	Mark which side of a symmetric diff a commit is reachable
+	from.  Commits from the left side are prefixed with a `<`
+	symbol and those from the right with a `>` symbol.
 
-	Automatically select the specified commit after loading the graph.
-	Default behavior is equivalent to specifying '--select-commit=HEAD'.
+--full-history::
+
+	When filtering history with '<path>...', does not prune some
+	history.  (See "History simplification" in linkgit:git-log[1]
+	for a more detailed explanation.)
+
+--simplify-merges::
 
-<revs>::
+	Additional option to '--full-history' to remove some needless
+	merges from the resulting history, as there are no selected
+	commits contributing to this merge.  (See "History
+	simplification" in linkgit:git-log[1] for a more detailed
+	explanation.)
+
+--ancestry-path::
+
+	When given a range of commits to display
+	(e.g. 'commit1..commit2' or 'commit2 {caret}commit1'), only
+	display commits that exist directly on the ancestry chain
+	between the 'commit1' and 'commit2', i.e. commits that are
+	both descendants of 'commit1', and ancestors of 'commit2'.
+	(See "History simplification" in linkgit:git-log[1] for a more
+	detailed explanation.)
+
+<revision range>::
 
 	Limit the revisions to show. This can be either a single revision
 	meaning show from the given revision and back, or it can be a range in
@@ -78,6 +113,23 @@ frequently used options.
 	avoid ambiguity with respect to revision names use "--" to separate the paths
 	from any preceding options.
 
+gitk-specific options
+~~~~~~~~~~~~~~~~~~~~~
+
+--argscmd=<command>::
+
+	Command to be run each time gitk has to determine the revision
+	range to show.  The command is expected to print on its
+	standard output a list of additional revisions to be shown,
+	one per line.  Use this instead of explicitly specifying a
+	'<revision range>' if the set of commits to show may vary
+	between refreshes.
+
+--select-commit=<ref>::
+
+	Select the specified commit after loading the graph.
+	Default behavior is equivalent to specifying '--select-commit=HEAD'.
+
 Examples
 --------
 gitk v2.6.12.. include/scsi drivers/scsi::
@@ -101,6 +153,13 @@ Files
 Gitk creates the .gitk file in your $HOME directory to store preferences
 such as display options, font, and colors.
 
+History
+-------
+Gitk was the first graphical repository browser. It's written in
+tcl/tk and started off in a separate repository but was later merged
+into the main Git repository.
+
+
 SEE ALSO
 --------
 'qgit(1)'::
-- 
1.8.4.1.810.g312044e
Previous: Jonathan NiederNext: Thomas Rast
Message 15 of 42 in “gitk support for git log -L”
  1. 0/4 gitk support for git log -LThomas Rast, Jun 9, 2013
  2. 1/4 gitk: refactor per-line part of getblobdiffline and its supportThomas Rast, Jun 9, 2013
  3. 2/4 gitk: split out diff part in $commitinfoThomas Rast, Jun 9, 2013
  4. 3/4 gitk: support showing the gathered inline diffsThomas Rast, Jun 9, 2013
  5. 4/4 gitk: recognize -L optionThomas Rast, Jun 9, 2013
  6. Thomas RastJul 23, 2013
  7. Thomas RastJul 29, 2013
  8. Jens LehmannJul 29, 2013
  9. Thomas RastJul 31, 2013
  10. Paul MackerrasAug 18, 2013
  11. Thomas RastAug 19, 2013
  12. Junio C HamanoAug 19, 2013
  13. Thomas RastOct 13, 2013
  14. Jonathan NiederOct 14, 2013
  15. Documentation: revamp gitk(1)Thomas Rast, Oct 20, 2013
  16. 0/7 gitk -LThomas Rast, Oct 29, 2013
  17. 1/7 gitk: support -G option from the command lineThomas Rast, Oct 29, 2013
  18. Junio C HamanoOct 30, 2013
  19. Thomas RastOct 30, 2013
  20. Junio C HamanoOct 30, 2013
  21. 2/7 gitk: refactor per-line part of getblobdiffline and its supportThomas Rast, Oct 29, 2013
  22. 3/7 gitk: split out diff part in $commitinfoThomas Rast, Oct 29, 2013
  23. 4/7 gitk: support showing the gathered inline diffsThomas Rast, Oct 29, 2013
  24. 5/7 gitk: recognize -L optionThomas Rast, Oct 29, 2013
  25. 6/7 Documentation: put blame/log -L in sticked formThomas Rast, Oct 29, 2013
  26. Junio C HamanoOct 30, 2013
  27. Thomas RastOct 30, 2013
  28. Junio C HamanoOct 30, 2013
  29. Thomas RastOct 30, 2013
  30. Junio C HamanoOct 30, 2013
  31. 0/5 gitk -LThomas Rast, Nov 16, 2013
  32. 1/5 gitk: support -G option from the command lineThomas Rast, Nov 16, 2013
  33. 2/5 gitk: refactor per-line part of getblobdiffline and its supportThomas Rast, Nov 16, 2013
  34. 3/5 gitk: split out diff part in $commitinfoThomas Rast, Nov 16, 2013
  35. 4/5 gitk: support showing the gathered inline diffsThomas Rast, Nov 16, 2013
  36. 5/5 gitk: recognize -L optionThomas Rast, Nov 16, 2013
  37. Paul MackerrasDec 1, 2013
  38. 0/3 Documentation: stuck arguments and gitk log -LThomas Rast, Nov 16, 2013
  39. 1/3 commit-tree: use prefixcmp instead of memcmp(..., N)Thomas Rast, Nov 16, 2013
  40. 2/3 Documentation: convert to --option=arg form where possibleThomas Rast, Nov 16, 2013
  41. 3/3 Documentation/gitk: document -L optionThomas Rast, Nov 16, 2013
  42. 7/7 Documentation/gitk: document -L optionThomas Rast, Oct 29, 2013

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.