git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Ramkumar Ramachandra <artagnon@gmail.com>,
	Git Mailing List <git@vger.kernel.org>,
	Thomas Ackermann <th.acker@arcor.de>
Subject: Re: [PATCH/RFC] glossary: a revision is just a commit
Date: Sun, 21 Apr 2013 12:00:45 -0700	[thread overview]
Message-ID: <7vy5cbso82.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: 20130421081705.GG10429@elie.Belkin

Jonathan Nieder <jrnieder@gmail.com> writes:

> The current definition of 'revision' sounds like it is saying that a
> revision is a tree object.  In reality it is just a commit.
>
> This should be especially useful for people used to other revision
> control systems trying to see how familiar concepts translate into git
> terms.
>
> Reported-by: Ramkumar Ramachandra <artagnon@gmail.com>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> ---

I think the existing glossary text is just confusing (it does wants
to refer to a commit (noun) as a concept, as opposed to its concrete
realization, i.e. a commit object, and tries to do so but does a bad
job).

Your update is an improvement, but there may need a note that says
that various web pages and documents, especially historical ones
[*1*], may loosely use this word to refer to any single object that
is not necessarily a commit at times.

> diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt
> index eb7ba84f..521fceeb 100644
> --- a/Documentation/glossary-content.txt
> +++ b/Documentation/glossary-content.txt
> @@ -430,9 +430,7 @@ should not be combined with other pathspec.
>  	<<def_merge,merge>> left behind.
>  
>  [[def_revision]]revision::
> -	A particular state of files and directories which was stored in the
> -	<<def_object_database,object database>>. It is referenced by a
> -	<<def_commit_object,commit object>>.
> +	Synonym for <<def_commit,commit>> (the noun).
>  
>  [[def_rewind]]rewind::
>  	To throw away part of the development, i.e. to assign the


[Footnote]

*1* The "rev-parse" command started as a tool to parse "revisions" aka
"commit", "revision range" e.g. "A..B" and non-revisions (pathspecs)
and flags.  It was primarily designed as a way to sift arguments
given to "git mylog -p A..B Makefile", so that a scripted "mylog"
can turn it into a pipeline that feeds "git rev-list A..B Makefile"
output as the input to "git diff-tree -p --stdin Makefile".

This was back when we did not even have non-committish extended
SHA-1 object name notation.  From the very start, "rev" in the name
"rev-parse" did not even mean that it is limited to "revision" aka
"commit".  Later we added tree:path form of extended SHA-1 notation
and "rev-parse --verify $it" has become its primary usage, while its
role as argument sifter has diminished as we made "log" a built-in,
not a pipeline.  Around that time, we loosely started calling
anything that get_sha1() can turn into an object name a "revision".

Also 99.9% of the time people use it to parse committish in real
life.

For these reasons, I do not think it is wise to rename "rev-parse"
to "object-name-parse".  "rev" in "rev-parse" may be related to
"revisions", and while it technically can operate on "revisions" (in
the colloquial "object name" sense), it is not limited to revisions.
And when it is used for revisions it mostly is used for "revisions"
(in the "nothing but committish" sense).  The name that most
faithfully reflects the use of the command is "git kitchen-sink"
these days.

The user still needs to know that in some context, "revision" may
loosely refer to "object name" when talking about a single object,
if only to understand the name of that command, let alone various
tutorials, screencasts and web resources people made over time.

  reply	other threads:[~2013-04-21 19:01 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-20 11:45 [PATCH 0/5] Documentation/shortlog improvements Ramkumar Ramachandra
2013-04-20 11:45 ` [PATCH 1/5] git-shortlog.txt: remove (-h|--help) from OPTIONS Ramkumar Ramachandra
2013-04-20 11:45 ` [PATCH 2/5] builtin/shortlog.c: make usage string consistent with log Ramkumar Ramachandra
2013-04-20 11:45 ` [PATCH 3/5] git-log.txt: fix description of <since>..<until> Ramkumar Ramachandra
2013-04-20 22:25   ` Jonathan Nieder
2013-04-21  7:18     ` Ramkumar Ramachandra
2013-04-21  7:41       ` Jonathan Nieder
     [not found]         ` <CAPc5daVcovqrHP-YWnkcQWwev5TW5S8ioX-bWyAnNG2PTg_XMw@mail.gmail.com>
2013-04-21  8:17           ` [PATCH/RFC] glossary: a revision is just a commit Jonathan Nieder
2013-04-21 19:00             ` Junio C Hamano [this message]
2013-04-21  7:19     ` [PATCH 3/5] git-log.txt: fix description of <since>..<until> Junio C Hamano
2013-04-21  6:40   ` Junio C Hamano
2013-04-20 11:45 ` [PATCH 4/5] git-log.txt: rewrite note on why "--" may be required Ramkumar Ramachandra
2013-04-21  6:51   ` Junio C Hamano
2013-04-21  7:26     ` Ramkumar Ramachandra
2013-04-21  7:33       ` Junio C Hamano
2013-04-21  7:38         ` Ramkumar Ramachandra
2013-04-21  7:46           ` Junio C Hamano
2013-04-21  8:00             ` Ramkumar Ramachandra
2013-04-21  8:09               ` Jonathan Nieder
2013-04-21  8:15                 ` Ramkumar Ramachandra
2013-04-21  8:17                   ` Jonathan Nieder
2013-04-21  8:33                 ` Junio C Hamano
2013-04-21  9:05                   ` Ramkumar Ramachandra
2013-04-21  9:46                     ` Ramkumar Ramachandra
2013-04-21 10:09                     ` Jonathan Nieder
     [not found]               ` <CAPc5daV39HsoRR2pj34Tz1kQKFVRrp+NZpMM2BremocqvToA+A@mail.gmail.com>
2013-04-21  8:13                 ` Ramkumar Ramachandra
2013-04-21  8:23                   ` Ramkumar Ramachandra
2013-04-21  7:39         ` Junio C Hamano
2013-04-21  7:57           ` Ramkumar Ramachandra
2013-04-22  2:40     ` Junio C Hamano
2013-04-22  9:36       ` Thomas Rast
2013-04-22  9:40         ` Thomas Rast
2013-04-22 14:55           ` Junio C Hamano
2013-04-20 11:45 ` [PATCH 5/5] git-shortlog.txt: make SYNOPSIS match log, update OPTIONS Ramkumar Ramachandra
2013-04-21  7:04   ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vy5cbso82.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=artagnon@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    --cc=th.acker@arcor.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).