* [PATCH] git-rev-list.txt: rev stands for revision, not reverse.
@ 2007-11-01 8:45 Ralf Wildenhues
2007-11-01 19:51 ` Junio C Hamano
0 siblings, 1 reply; 5+ messages in thread
From: Ralf Wildenhues @ 2007-11-01 8:45 UTC (permalink / raw)
To: git, Junio C Hamano
Mention revs, revisions as aliases for commit objects,
to clarify that rev-list is not an abbreviation for
listing in reverse order, but for listing revisions.
---
Yes, believe it or not, but I stumbled over the synopsis
| git-rev-list - Lists commit objects in reverse chronological order
asking myself whether rev could possibly mean "reverse".
I hope this helps avoid this pitfall for others.
Cheers,
Ralf
Documentation/git-rev-list.txt | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt
index 4852804..8afe34b 100644
--- a/Documentation/git-rev-list.txt
+++ b/Documentation/git-rev-list.txt
@@ -44,9 +44,9 @@ SYNOPSIS
DESCRIPTION
-----------
-Lists commit objects in reverse chronological order starting at the
-given commit(s), taking ancestry relationship into account. This is
-useful to produce human-readable log output.
+Lists commit objects (revs, revisions) in reverse chronological order
+starting at the given commit(s), taking ancestry relationship into
+account. This is useful to produce human-readable log output.
Commits which are stated with a preceding '{caret}' cause listing to
stop at that point. Their parents are implied. Thus the following
--
1.5.3.3.g34c6d
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] git-rev-list.txt: rev stands for revision, not reverse.
2007-11-01 8:45 [PATCH] git-rev-list.txt: rev stands for revision, not reverse Ralf Wildenhues
@ 2007-11-01 19:51 ` Junio C Hamano
2007-11-02 18:55 ` Ralf Wildenhues
0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2007-11-01 19:51 UTC (permalink / raw)
To: Ralf Wildenhues; +Cc: git
Ralf Wildenhues <Ralf.Wildenhues@gmx.de> writes:
> Mention revs, revisions as aliases for commit objects,
> to clarify that rev-list is not an abbreviation for
> listing in reverse order, but for listing revisions.
> ---
> Yes, believe it or not, but I stumbled over the synopsis
>
> | git-rev-list - Lists commit objects in reverse chronological order
>
> asking myself whether rev could possibly mean "reverse".
> I hope this helps avoid this pitfall for others.
In addition to your patch,
git-rev-list - List commits from most recent to older
might be a good rewording? "rev-list --reverse" reverses that
usual order and we end up explaining double reversal if we use
the phrase "reverse chronological order" to describe the normal
order.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] git-rev-list.txt: rev stands for revision, not reverse.
2007-11-01 19:51 ` Junio C Hamano
@ 2007-11-02 18:55 ` Ralf Wildenhues
2007-11-02 20:12 ` Junio C Hamano
0 siblings, 1 reply; 5+ messages in thread
From: Ralf Wildenhues @ 2007-11-02 18:55 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Hello Junio,
* Junio C Hamano wrote on Thu, Nov 01, 2007 at 08:51:11PM CET:
> Ralf Wildenhues <Ralf.Wildenhues@gmx.de> writes:
>
> > Yes, believe it or not, but I stumbled over the synopsis
> >
> > | git-rev-list - Lists commit objects in reverse chronological order
> >
> > asking myself whether rev could possibly mean "reverse".
> > I hope this helps avoid this pitfall for others.
>
> In addition to your patch,
>
> git-rev-list - List commits from most recent to older
>
> might be a good rewording?
Is the reverse chronological order the primary sorting key at all?
My clone of the git repo gives me
$ git rev-list --pretty=format:%ct master | grep -v ^commit >A
$ sort -k1nr A | diff -u - A
--- - 2007-11-02 18:06:00.115804000 +0100
+++ A 2007-11-02 18:05:37.000000000 +0100
@@ -8162,8 +8162,8 @@
1141461106
1141461098
1141461088
-1141457404
1141457396
+1141457404
1141453772
1141453757
1141453684
Interestingly, --date-order shows another inconsistency:
$ git rev-list --date-order --pretty=format:%ct master | grep -v ^commit >Ad
$ sort -k1nr Ad | diff -u - Ad
--- - 2007-11-02 18:27:18.091006000 +0100
+++ Ad 2007-11-02 18:25:46.000000000 +0100
@@ -653,8 +653,8 @@
1188812406
1188808117
1188770606
-1188716400
1188716027
+1188716400
1188677727
1188668216
1188644991
@@ -8162,8 +8162,8 @@
1141461106
1141461098
1141461088
-1141457404
1141457396
+1141457404
1141453772
1141453757
1141453684
This is "git version 1.5.3.5.474.g3e4bb", both repo and executables.
It looks like there is either a bug or the sorting criterion is subtly
different.
> "rev-list --reverse" reverses that usual order and we end up
> explaining double reversal if we use the phrase "reverse chronological
> order" to describe the normal order.
Well, I'd say the current synopsis would be fine if the default ordering
really were the commit date. The synopsis should be concise, it's good
enough if the Description clears potential doubts.
Cheers,
Ralf
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] git-rev-list.txt: rev stands for revision, not reverse.
2007-11-02 18:55 ` Ralf Wildenhues
@ 2007-11-02 20:12 ` Junio C Hamano
2007-11-02 20:46 ` Junio C Hamano
0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2007-11-02 20:12 UTC (permalink / raw)
To: Ralf Wildenhues; +Cc: git
Ralf Wildenhues <Ralf.Wildenhues@gmx.de> writes:
> Hello Junio,
>
> * Junio C Hamano wrote on Thu, Nov 01, 2007 at 08:51:11PM CET:
>> Ralf Wildenhues <Ralf.Wildenhues@gmx.de> writes:
>>
>> > Yes, believe it or not, but I stumbled over the synopsis
>> >
>> > | git-rev-list - Lists commit objects in reverse chronological order
>> >
>> > asking myself whether rev could possibly mean "reverse".
>> > I hope this helps avoid this pitfall for others.
>>
>> In addition to your patch,
>>
>> git-rev-list - List commits from most recent to older
>>
>> might be a good rewording?
>
> Is the reverse chronological order the primary sorting key at all?
It is mostly chrono but there is a topo element as well. You
would never see a parent none of whose child is shown.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] git-rev-list.txt: rev stands for revision, not reverse.
2007-11-02 20:12 ` Junio C Hamano
@ 2007-11-02 20:46 ` Junio C Hamano
0 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2007-11-02 20:46 UTC (permalink / raw)
To: Ralf Wildenhues; +Cc: git
Junio C Hamano <gitster@pobox.com> writes:
> Ralf Wildenhues <Ralf.Wildenhues@gmx.de> writes:
>
>> Is the reverse chronological order the primary sorting key at all?
>
> It is mostly chrono but there is a topo element as well. You
> would never see a parent none of whose child is shown.
To be precise...
Internally, it mainly works on topology with an additional logic
to tiebreak with commit timestamps.
- We always have one or more "output candidates".
- Initially, the set of output candidates are primed from the
positive refs (e.g. "foo", foo in "bar..foo", foo and bar in
"bar...foo") you give to rev-list and/or log family of
commands, after reachability analysis with negative refs
(e.g. "^foo", bar in "bar..foo", merge-base of foo and bar in
"bar...foo") if present.
- We output the latest one among output candidates. The
parents of the commit we output go through the reachability
analysis and the ones that are reachable from any of the
negative refs are removed. The ones that survive this
reachability analysis are added to the output candidates.
And the process starts over. The algorithm terminates when
there is none.
In practice, because child commits tend to get later commit
timestamps than all of their parent commits, the output looks
mostly reverse chronological.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-11-02 20:46 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-01 8:45 [PATCH] git-rev-list.txt: rev stands for revision, not reverse Ralf Wildenhues
2007-11-01 19:51 ` Junio C Hamano
2007-11-02 18:55 ` Ralf Wildenhues
2007-11-02 20:12 ` Junio C Hamano
2007-11-02 20:46 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).