Make read_patch_file work on a strbuf.
[gitweb.git] / Documentation / git-rev-list.txt
index 00a95e249fe82f2eb3d53dcc541559dceb3e8709..7cd0e8913e8ec08b7e125676384e973b585c306b 100644 (file)
@@ -10,21 +10,34 @@ SYNOPSIS
 --------
 [verse]
 'git-rev-list' [ \--max-count=number ]
+            [ \--skip=number ]
             [ \--max-age=timestamp ]
             [ \--min-age=timestamp ]
             [ \--sparse ]
             [ \--no-merges ]
             [ \--remove-empty ]
+            [ \--full-history ]
             [ \--not ]
             [ \--all ]
             [ \--stdin ]
             [ \--topo-order ]
             [ \--parents ]
+            [ \--timestamp ]
+            [ \--left-right ]
+            [ \--cherry-pick ]
+            [ \--encoding[=<encoding>] ]
             [ \--(author|committer|grep)=<pattern> ]
+            [ \--regexp-ignore-case | \-i ]
+            [ \--extended-regexp | \-E ]
+            [ \--date={local|relative|default|iso|rfc|short} ]
             [ [\--objects | \--objects-edge] [ \--unpacked ] ]
             [ \--pretty | \--header ]
             [ \--bisect ]
+            [ \--bisect-vars ]
             [ \--merge ]
+            [ \--reverse ]
+            [ \--walk-reflogs ]
+            [ \--no-walk ] [ \--do-walk ]
             <commit>... [ \-- <paths>... ]
 
 DESCRIPTION
@@ -79,17 +92,31 @@ Using these options, gitlink:git-rev-list[1] will act similar to the
 more specialized family of commit log tools: gitlink:git-log[1],
 gitlink:git-show[1], and gitlink:git-whatchanged[1]
 
---pretty[='<format>']::
-
-       Pretty print the contents of the commit logs in a given format,
-       where '<format>' can be one of 'raw', 'medium', 'short', 'full',
-       and 'oneline'. When left out the format default to 'medium'.
+include::pretty-options.txt[]
 
 --relative-date::
 
-       Show dates relative to the current time, e.g. "2 hours ago".
+       Synonym for `--date=relative`.
+
+--date={relative,local,default,iso,rfc}::
+
        Only takes effect for dates shown in human-readable format, such
        as when using "--pretty".
++
+`--date=relative` shows dates relative to the current time,
+e.g. "2 hours ago".
++
+`--date=local` shows timestamps in user's local timezone.
++
+`--date=iso` (or `--date=iso8601`) shows timestamps in ISO 8601 format.
++
+`--date=rfc` (or `--date=rfc2822`) shows timestamps in RFC 2822
+format, often found in E-mail messages.
++
+`--date=short` shows only date but not time, in `YYYY-MM-DD` format.
++
+`--date=default` shows timestamps in the original timezone
+(either committer's or author's).
 
 --header::
 
@@ -100,6 +127,39 @@ gitlink:git-show[1], and gitlink:git-whatchanged[1]
 
        Print the parents of the commit.
 
+--timestamp::
+       Print the raw commit timestamp.
+
+--left-right::
+
+       Mark which side of a symmetric diff a commit is reachable from.
+       Commits from the left side are prefixed with `<` and those from
+       the right with `>`.  If combined with `--boundary`, those
+       commits are prefixed with `-`.
++
+For example, if you have this topology:
++
+-----------------------------------------------------------------------
+             y---b---b  branch B
+            / \ /
+           /   .
+          /   / \
+         o---x---a---a  branch A
+-----------------------------------------------------------------------
++
+you would get an output line this:
++
+-----------------------------------------------------------------------
+       $ git rev-list --left-right --boundary --pretty=oneline A...B
+
+       >bbbbbbb... 3rd on b
+       >bbbbbbb... 2nd on b
+       <aaaaaaa... 3rd on a
+       <aaaaaaa... 2nd on a
+       -yyyyyyy... 1st on b
+       -xxxxxxx... 1st on a
+-----------------------------------------------------------------------
+
 Diff Formatting
 ~~~~~~~~~~~~~~~
 
@@ -143,6 +203,10 @@ limiting may be applied.
 
        Limit the number of commits output.
 
+--skip='number'::
+
+       Skip 'number' commits before starting to show the commit output.
+
 --since='date', --after='date'::
 
        Show commits more recent than a specific date.
@@ -158,17 +222,34 @@ limiting may be applied.
 --author='pattern', --committer='pattern'::
 
        Limit the commits output to ones with author/committer
-       header lines that match the specified pattern.
+       header lines that match the specified pattern (regular expression).
 
 --grep='pattern'::
 
        Limit the commits output to ones with log message that
-       matches the specified pattern.
+       matches the specified pattern (regular expression).
+
+-i, --regexp-ignore-case::
+
+       Match the regexp limiting patterns without regard to letters case.
+
+-E, --extended-regexp::
+
+       Consider the limiting patterns to be extended regular expressions
+       instead of the default basic regular expressions.
 
 --remove-empty::
 
        Stop when a given path disappears from the tree.
 
+--full-history::
+
+       Show also parts of history irrelevant to current state of a given
+       path. This turns off history simplification, which removed merges
+       which didn't change anything at all at some child. It will still actually
+       simplify away merges that didn't change anything at all into either
+       child.
+
 --no-merges::
 
        Do not print commits with more than one parent.
@@ -188,6 +269,38 @@ limiting may be applied.
        In addition to the '<commit>' listed on the command
        line, read them from the standard input.
 
+--cherry-pick::
+
+       Omit any commit that introduces the same change as
+       another commit on the "other side" when the set of
+       commits are limited with symmetric difference.
++
+For example, if you have two branches, `A` and `B`, a usual way
+to list all commits on only one side of them is with
+`--left-right`, like the example above in the description of
+that option.  It however shows the commits that were cherry-picked
+from the other branch (for example, "3rd on b" may be cherry-picked
+from branch A).  With this option, such pairs of commits are
+excluded from the output.
+
+-g, --walk-reflogs::
+
+       Instead of walking the commit ancestry chain, walk
+       reflog entries from the most recent one to older ones.
+       When this option is used you cannot specify commits to
+       exclude (that is, '{caret}commit', 'commit1..commit2',
+       nor 'commit1...commit2' notations cannot be used).
++
+With '\--pretty' format other than oneline (for obvious reasons),
+this causes the output to have two extra lines of information
+taken from the reflog.  By default, 'commit@\{Nth}' notation is
+used in the output.  When the starting commit is specified as
+'commit@{now}', output also uses 'commit@\{timestamp}' notation
+instead.  Under '\--pretty=oneline', the commit message is
+prefixed with this information on the same line.
+
+Cannot be combined with '\--reverse'.
+
 --merge::
 
        After a failed merge, show refs that touch files having a
@@ -229,6 +342,18 @@ introduces a regression is thus reduced to a binary search: repeatedly
 generate and test new 'midpoint's until the commit chain is of length
 one.
 
+--bisect-vars::
+
+This calculates the same as `--bisect`, but outputs text ready
+to be eval'ed by the shell. These lines will assign the name of
+the midpoint revision to the variable `bisect_rev`, and the
+expected number of commits to be tested after `bisect_rev` is
+tested to `bisect_nr`, the expected number of commits to be
+tested if `bisect_rev` turns out to be good to `bisect_good`,
+the expected number of commits to be tested if `bisect_rev`
+turns out to be bad to `bisect_bad`, and the number of commits
+we are bisecting right now to `bisect_all`.
+
 --
 
 Commit Ordering
@@ -247,6 +372,11 @@ By default, the commits are shown in reverse chronological order.
        parent comes before all of its children, but otherwise things
        are still ordered in the commit timestamp order.
 
+--reverse::
+
+       Output the commits in reverse order.
+       Cannot be combined with '\--walk-reflogs'.
+
 Object Traversal
 ~~~~~~~~~~~~~~~~
 
@@ -272,6 +402,18 @@ These options are mostly targeted for packing of git repositories.
        Only useful with '--objects'; print the object IDs that are not
        in packs.
 
+--no-walk::
+
+       Only show the given revs, but do not traverse their ancestors.
+
+--do-walk::
+
+       Overrides a previous --no-walk.
+
+
+include::pretty-formats.txt[]
+
+
 Author
 ------
 Written by Linus Torvalds <torvalds@osdl.org>