Skip to content

Commit d56651c

Browse files
spearcegitster
authored andcommitted
Don't allow combination of -g and --reverse as it doesn't work
The --walk-reflogs logic and the --reverse logic are completely incompatible with one another. Attempting to use both at the same time leads to confusing results that sometimes violates the user's formatting options or ignores the user's request to see the reflog message and timestamp. Unfortunately the implementation of both of these features is glued onto the side of the revision walking machinary in such a way that they are probably not going to be easy to make them compatible with each other. Rather than offering the user confusing results we are better off bailing out with an error message until such a time as the implementations can be refactored to be compatible. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 14cd560 commit d56651c

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

Documentation/git-log.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ include::pretty-options.txt[]
4949
-g, \--walk-reflogs::
5050
Show commits as they were recorded in the reflog. The log contains
5151
a record about how the tip of a reference was changed.
52+
Cannot be combined with --reverse.
5253
See also gitlink:git-reflog[1].
5354

5455
--decorate::

Documentation/git-rev-list.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,8 @@ used in the output. When the starting commit is specified as
298298
'commit@{now}', output also uses 'commit@\{timestamp}' notation
299299
instead. Under '\--pretty=oneline', the commit message is
300300
prefixed with this information on the same line.
301+
+
302+
Cannot be combined with --reverse.
301303

302304
--merge::
303305

@@ -373,6 +375,7 @@ By default, the commits are shown in reverse chronological order.
373375
--reverse::
374376

375377
Output the commits in reverse order.
378+
Cannot be combined with --walk-reflogs.
376379

377380
Object Traversal
378381
~~~~~~~~~~~~~~~~

revision.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,6 +1277,9 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
12771277
compile_grep_patterns(revs->grep_filter);
12781278
}
12791279

1280+
if (revs->reverse && revs->reflog_info)
1281+
die("cannot combine --reverse with --walk-reflogs");
1282+
12801283
return left;
12811284
}
12821285

0 commit comments

Comments
 (0)