{"thread":{"id":"1364","subject":"[PATCH] document git-rev-list better","startedAt":"2005-07-29T18:10:46Z","lastAt":"2005-07-29T18:10:46Z","messageCount":1,"participants":["Matthias Urlichs"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"6602","messageId":"pan.2005.07.29.18.10.41.948607@smurf.noris.de","threadId":"1364","inReplyTo":null,"subject":"[PATCH] document git-rev-list better","fromName":"Matthias Urlichs","fromEmail":"smurf@smurf.noris.de","sentAt":"2005-07-29T18:10:46Z","receivedAt":"2005-07-29T18:10:46Z","isPatch":true,"sender":{"key":"matthias@urlichs.de","avatar":"https://gravatar.com/avatar/2708905af227313eba6f2b2ae0f7d0259b5ac5d71baef58fe5a13c699ce0bbf0?d=mp&s=160"},"body":"Document new (and not-so-new) flags of git-rev-list.\n\nSigned-off-By: Matthias Urlichs <smurf@smurf.noris.de>\n---\ndiff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt\n--- a/Documentation/git-rev-list.txt\n+++ b/Documentation/git-rev-list.txt\n@@ -9,14 +9,35 @@ git-rev-list - Lists commit objects in r\n \n SYNOPSIS\n --------\n-'git-rev-list' [ *--max-count*=number ] [ *--max-age*=timestamp ] [ *--min-age*=timestamp ] [ *--merge-order* [ *--show-breaks* ] ] <commit>\n+'git-rev-list' [ *--max-count*=number ] [ *--max-age*=timestamp ] [ *--min-age*=timestamp ] [ *--bisect* ] [ *--pretty* ] [ *--objects* ] [ *--merge-order* [ *--show-breaks* ] ] <commit> [ <commit> ...] [ ^<commit> ...]\n \n DESCRIPTION\n -----------\n Lists commit objects in reverse chronological order starting at the\n-given commit, taking ancestry relationship into account.  This is\n+given commit(s), taking ancestry relationship into account.  This is\n useful to produce human-readable log output.\n \n+Commits which are stated with a preceding '^' cause listing to stop at\n+that point. Their parents are implied. \"git-rev-list foo bar ^baz\" thus\n+means \"list all the commits which are included in 'foo' and 'bar', but\n+not in 'baz'\".\n+\n+If *--pretty* is specified, print the contents of the commit changesets\n+in human-readable form.\n+\n+The *--objects* flag causes 'git-rev-list' to print the object IDs of\n+any object referenced by the listed commits. 'git-rev-list --objects foo\n+^bar' thus means \"send me all object IDs which I need to download if\n+I have the commit object 'bar', but not 'foo'\".\n+\n+The *--bisect* flag limits output to the one commit object which is\n+roughly halfway between the included and excluded commits. Thus,\n+if \"git-rev-list --bisect foo ^bar ^baz\" outputs 'midpoint', the output\n+of \"git-rev-list foo ^midpoint\" and \"git-rev-list midpoint ^bar ^baz\"\n+would be of roughly the same length. Finding the change which introduces\n+a regression is thus reduced to a binary search: repeatedly generate and\n+test new 'midpoint's until the commit chain is of length one.\n+\n If *--merge-order* is specified, the commit history is decomposed into a\n unique sequence of minimal, non-linear epochs and maximal, linear epochs.\n Non-linear epochs are then linearised by sorting them into merge order, which\n"}]}