From: David Kastrup <dak@gnu.org>
To: Alan Mackenzie <acm@muc.de>
Cc: emacs-devel@gnu.org
Subject: Re: Referring to revisions in the git future.
Date: Wed, 29 Oct 2014 12:37:18 +0100 [thread overview]
Message-ID: <87tx2n9kep.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <20141029111837.GA2953@acm.acm> (Alan Mackenzie's message of "Wed, 29 Oct 2014 11:18:37 +0000")
Alan Mackenzie <acm@muc.de> writes:
> Hello, David.
>
> On Wed, Oct 29, 2014 at 09:50:28AM +0100, David Kastrup wrote:
>> Alan Mackenzie <acm@muc.de> writes:
>
>> > Hello, Emacs.
>
>> > We are switching to git, soon.
>
>> > git doesn't have revision numbers. Instead it uses cryptic
>> > identifiers, which are not very useful in day to day conversation. A
>> > bit like in George Orwell's "Newspeak", where lingusists constantly
>> > removed words and meanings so as to render certain notions literally
>> > inexpressible, we seem to be faced with the same situation.
>
>> > On this list, one quite often sees statements such as:
>
>> > "That was fixed in revision 118147, have you updated since then?"
>
>> > or
>
>> > "The bug seems to have been introduced between 118230 and 118477.
>> > Maybe you could do a bisect to track it down.".
>
>> So what are people going to do with this kind of information?
>> Copy&paste it into some command line. A 40-letter string works just as
>> well as a 6 letter string for that.
>
> Copy&paste using a mouse is a tedious operation which interrupts
> workflow.
So don't use a mouse.
> A number like 118230 can be easily memorised and typed in to a command
> line.
Frankly, memorizing something like revision ids is error prone and
dangerous. If you memorize the first 6 characters of a commit id
instead, at least Git will complain if that identifies no unique commit.
> What else am I going to do with the information? A revision number
> contains useful meta-information: how old the revision is (more or less),
> and whether it comes before or after another revision (more or less).
That's the kind of stuff I'd rather ask my version control system.
> In the above "fancy doing a bisect?" example, it's immediately clear
> that the bisect operation is going to be taking around 7 or 8
> repetitions, that clarity being more immediate and subconscious than
> calculated. One can estimate, quasi subconsciously, whether the
> tedium involved in the bisection would be well spent, or whether some
> other approach would be better.
Well, feed those numbers to git bisect, and it will tell you right away
how many steps it will take. Exactly.
> A revision number tells you how old the repository is. With 118230,
> the repository is clearly decades old. With 729, it might be as young
> as a few months.
I don't see you appending your birth date to your name, either.
Basically you are complaining that the commit SHA1 only provides the
commit SHA1 without additional literary value that one can approximately
deduce when brooding for hours over it rather than asking the version
control system.
But it is not intended to be a conversation piece.
> With revision hashes, all that information is absent. To get it, one
> is forced to enter tedious command line commands, likely having to use
> a mouse to cut and paste the hash - twice.
Keyboard exists.
> It is analogous to being able to refer to people by their names,
> compared with having to use some sort of random identifier.
If you become acquainted with a particular revision number to a degree
that you develop a personal relation to it, chances are that this commit
was a bad idea. Also chances are that you'll start recognizing the SHA1
after getting to see it for the twentieth time.
> Having revision numbers clearly works very well.
That reminds me of the rule-of-thumb for discovering errors in
mathematical proofs: just look for the first occurence of any of
"clearly", "trivially", "obviously", "it can be easily shown".
> bzr and hg both have them in addition to the universe-unique hashes.
> git is missing this useful feature.
And git clearly works very well since it is being used in large-scale
non-trivial projects with thousands of developers.
Feel free to use "git describe" yourself for getting a "human-readable"
"revision number". But don't expect many others to follow that practice
enthusedly.
--
David Kastrup
next prev parent reply other threads:[~2014-10-29 11:37 UTC|newest]
Thread overview: 137+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-28 22:33 Referring to revisions in the git future Alan Mackenzie
2014-10-28 22:54 ` Óscar Fuentes
2014-10-28 23:05 ` Alan Mackenzie
2014-10-28 23:24 ` Óscar Fuentes
2014-10-31 22:47 ` Paul Eggert
2014-10-29 0:49 ` Eric S. Raymond
2014-10-29 3:38 ` Stephen J. Turnbull
2014-10-29 12:26 ` Stefan Monnier
2014-10-29 12:41 ` Alexander Baier
2014-10-29 14:52 ` Barry Warsaw
2014-10-29 15:01 ` David Kastrup
2014-10-29 15:06 ` Eric S. Raymond
2014-10-29 18:12 ` Barry Warsaw
2014-10-29 22:09 ` Lars Magne Ingebrigtsen
2014-10-29 22:29 ` Eric S. Raymond
2014-10-29 23:31 ` Paul Eggert
2014-10-30 0:01 ` Nic Ferrier
2014-10-30 1:53 ` Stefan Monnier
2014-10-30 2:10 ` Eric S. Raymond
2014-10-30 2:13 ` Paul Eggert
2014-10-30 2:48 ` Eric S. Raymond
2014-10-30 2:25 ` Glenn Morris
2014-10-30 10:10 ` David Kastrup
2014-10-30 13:03 ` Stefan Monnier
2014-10-30 13:40 ` David Kastrup
2014-10-30 14:00 ` Stefan Monnier
2014-10-30 13:02 ` Stefan Monnier
2014-10-30 15:12 ` Eric S. Raymond
2014-10-30 16:49 ` Stefan Monnier
2014-10-30 6:46 ` Jan Djärv
2014-10-30 7:36 ` Ivan Shmakov
2014-10-30 8:09 ` Jan Djärv
2014-10-30 8:31 ` Eric S. Raymond
2014-10-30 9:53 ` Andreas Schwab
2014-10-30 10:13 ` Eric S. Raymond
2014-10-30 10:32 ` Andreas Schwab
2014-10-30 11:13 ` Nicolas Richard
2014-10-30 10:12 ` David Kastrup
2014-10-30 13:29 ` Stefan Monnier
2014-10-30 15:33 ` DVCS design philosophy Eric S. Raymond
2014-10-30 16:59 ` Stefan Monnier
2014-10-30 17:41 ` Eric S. Raymond
2014-10-31 20:18 ` Referring to revisions in the git future Nicolas Richard
2014-10-31 21:11 ` Stefan Monnier
2014-11-01 1:44 ` Stephen J. Turnbull
2014-11-01 7:58 ` David Kastrup
2014-10-30 14:20 ` Barry Warsaw
2014-11-01 1:23 ` Stephen J. Turnbull
2014-10-30 15:52 ` Eli Zaretskii
2014-10-30 3:32 ` Stephen J. Turnbull
2014-10-30 4:35 ` Barry Warsaw
2014-10-30 5:24 ` Stephen J. Turnbull
2014-10-30 10:17 ` David Kastrup
2014-10-30 13:42 ` Alex Bennée
2014-10-30 13:19 ` Stefan Monnier
2014-10-31 6:36 ` Stephen J. Turnbull
2014-10-31 19:42 ` David Kastrup
2014-11-01 1:34 ` Stephen J. Turnbull
2014-11-01 7:05 ` Tassilo Horn
2014-11-01 7:09 ` Dima Kogan
2014-11-01 7:28 ` Paul Eggert
2014-11-01 7:49 ` David Kastrup
2014-11-01 9:46 ` Alan Mackenzie
2014-11-01 10:13 ` Eli Zaretskii
2014-11-01 11:33 ` Alan Mackenzie
2014-11-01 13:06 ` Eli Zaretskii
2014-11-01 13:21 ` Alan Mackenzie
2014-11-01 10:29 ` David Kastrup
2014-11-01 11:29 ` Alan Mackenzie
2014-11-01 11:57 ` David Kastrup
2014-11-01 12:29 ` Alan Mackenzie
2014-11-01 12:47 ` Ivan Shmakov
2014-11-01 13:46 ` Alan Mackenzie
2014-11-01 18:58 ` Stephen J. Turnbull
2014-11-01 12:49 ` David Kastrup
2014-10-29 1:11 ` Stefan Monnier
2014-10-29 6:06 ` Werner LEMBERG
2014-10-29 9:01 ` David Kastrup
2014-10-29 8:50 ` David Kastrup
2014-10-29 9:52 ` Eric S. Raymond
2014-10-29 11:00 ` David Kastrup
2014-10-29 14:32 ` Eli Zaretskii
2014-10-29 14:35 ` David Kastrup
2014-10-29 14:55 ` Eli Zaretskii
2014-10-30 4:44 ` Richard Stallman
2014-10-30 8:32 ` Eric S. Raymond
2014-10-30 10:25 ` David Kastrup
2014-10-30 11:51 ` Eric S. Raymond
2014-10-30 12:14 ` David Kastrup
2014-10-30 15:01 ` Eric S. Raymond
2014-10-30 15:53 ` Eli Zaretskii
2014-10-30 15:56 ` Eric S. Raymond
2014-10-30 16:44 ` Eli Zaretskii
2014-10-31 7:47 ` Richard Stallman
2014-10-31 8:17 ` Eli Zaretskii
2014-10-31 10:21 ` Eric S. Raymond
2014-10-29 12:35 ` Stefan Monnier
2014-10-29 13:00 ` Jose E. Marchesi
2014-10-29 13:59 ` Stefan Monnier
2014-10-29 14:39 ` Eric S. Raymond
2014-10-29 14:46 ` Rasmus
2014-10-29 14:52 ` Eric S. Raymond
2014-10-30 0:58 ` Rob Browning
2014-10-29 15:27 ` Stefan Monnier
2014-10-29 14:04 ` utf8 and emacs text/string multibyte representation Camm Maguire
2014-10-29 14:51 ` Eli Zaretskii
2014-10-29 15:55 ` Camm Maguire
2014-10-29 16:19 ` Eli Zaretskii
2014-10-30 14:13 ` Camm Maguire
2014-10-30 16:06 ` Eli Zaretskii
2014-10-30 16:27 ` Camm Maguire
2014-10-30 16:35 ` Eli Zaretskii
2014-10-31 18:05 ` Camm Maguire
2014-11-01 9:01 ` Eli Zaretskii
2014-11-01 18:32 ` Stephen J. Turnbull
2014-11-01 18:41 ` David Kastrup
2014-11-01 19:09 ` Stephen J. Turnbull
2014-11-02 0:56 ` Stefan Monnier
2014-11-01 1:16 ` Stephen J. Turnbull
2014-10-29 16:45 ` Stefan Monnier
2014-10-29 15:56 ` Raymond Toy
2014-10-30 14:16 ` Camm Maguire
2014-10-31 18:47 ` Sam Steingold
2014-10-31 21:00 ` Andreas Schwab
2014-10-31 19:52 ` [Gcl-devel] " Stefan Monnier
2014-10-30 3:08 ` Stephen J. Turnbull
2014-10-29 13:26 ` Referring to revisions in the git future Eric S. Raymond
2014-10-29 14:04 ` Stefan Monnier
2014-10-29 14:49 ` Eric S. Raymond
2014-10-30 2:43 ` Stephen J. Turnbull
2014-10-29 13:08 ` Jan Djärv
2014-10-29 13:27 ` Eric S. Raymond
2014-10-29 13:49 ` Eric S. Raymond
2014-10-29 18:03 ` Jan Djärv
2014-10-29 11:18 ` Alan Mackenzie
2014-10-29 11:37 ` David Kastrup [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-10-31 9:43 Eli Zaretskii
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tx2n9kep.fsf@fencepost.gnu.org \
--to=dak@gnu.org \
--cc=acm@muc.de \
--cc=emacs-devel@gnu.org \
/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.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).