From: Philippe Blain <levraiphilippeblain@xxxxxxxxx> The `git log` synopsis mentions `<revision range>`, and the description of this option links to gitrevisions(7), but a nice explanation of how a revision range can be constructed from individual commits, optionnally prefixed with `^`, also exists in `rev-list-description.txt`. Include this description in the man page for `git log`. Add Asciidoc 'ifdef's to `rev-list-description.txt` so that either `git rev-list` or `git log` appears in the respective man pages. Signed-off-by: Philippe Blain <levraiphilippeblain@xxxxxxxxx> --- Documentation/git-log.txt | 3 +++ Documentation/git-rev-list.txt | 1 + Documentation/rev-list-description.txt | 23 +++++++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt index 04ea18d1c0..d34d101255 100644 --- a/Documentation/git-log.txt +++ b/Documentation/git-log.txt @@ -15,6 +15,9 @@ DESCRIPTION ----------- Shows the commit logs. +:git-log: 1 +include::rev-list-description.txt[] + The command takes options applicable to the linkgit:git-rev-list[1] command to control what is shown and how, and options applicable to the linkgit:git-diff[1] family of commands to control how the changes diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt index b06e11ae56..5da66232dc 100644 --- a/Documentation/git-rev-list.txt +++ b/Documentation/git-rev-list.txt @@ -14,6 +14,7 @@ SYNOPSIS DESCRIPTION ----------- +:git-rev-list: 1 include::rev-list-description.txt[] 'rev-list' is a very essential Git command, since it diff --git a/Documentation/rev-list-description.txt b/Documentation/rev-list-description.txt index aa6bbd8cec..dce78561be 100644 --- a/Documentation/rev-list-description.txt +++ b/Documentation/rev-list-description.txt @@ -12,9 +12,16 @@ to further limit the result. Thus, the following command: +ifdef::git-rev-list[] ----------------------------------------------------------------------- $ git rev-list foo bar ^baz ----------------------------------------------------------------------- +endif::git-rev-list[] +ifdef::git-log[] +----------------------------------------------------------------------- + $ git log foo bar ^baz +----------------------------------------------------------------------- +endif::git-log[] means "list all the commits which are reachable from 'foo' or 'bar', but not from 'baz'". @@ -23,16 +30,32 @@ A special notation "'<commit1>'..'<commit2>'" can be used as a short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of the following may be used interchangeably: +ifdef::git-rev-list[] ----------------------------------------------------------------------- $ git rev-list origin..HEAD $ git rev-list HEAD ^origin ----------------------------------------------------------------------- +endif::git-rev-list[] +ifdef::git-log[] +----------------------------------------------------------------------- + $ git log origin..HEAD + $ git log HEAD ^origin +----------------------------------------------------------------------- +endif::git-log[] Another special notation is "'<commit1>'...'<commit2>'" which is useful for merges. The resulting set of commits is the symmetric difference between the two operands. The following two commands are equivalent: +ifdef::git-rev-list[] ----------------------------------------------------------------------- $ git rev-list A B --not $(git merge-base --all A B) $ git rev-list A...B ----------------------------------------------------------------------- +endif::git-rev-list[] +ifdef::git-log[] +----------------------------------------------------------------------- + $ git log A B --not $(git merge-base --all A B) + $ git log A...B +----------------------------------------------------------------------- +endif::git-log[] -- gitgitgadget