emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: On the popularity of git


From: Stephen J. Turnbull
Subject: Re: On the popularity of git
Date: Sun, 1 Nov 2015 01:02:36 +0900

Eli Zaretskii writes:

 > The truth is that "$VCS commit" committing all the changes _is_
 > TRT.  Why?

Because you're a former Department of Defense contractor used to
MIL-STD-498 processes and only commit after getting three signatures
on a paper form anyway?  Or you're Alan Mackenzie, Eli Zaretski, or
Richard Stallman, capable of effortlessly keeping a clean workspace
without ever having those embarrassing extraneous changes in it.

 > because all the other VCSes before and after Git do that,

As David points out SCCS, RCS, and CVS didn't do that.  SCCS and
RCS *could not*.  I don't recall what larch and its successors, or
Bitkeeper, did, but I don't think they did, either.

 > and because that's what a mere human would expect.

I love you too, Eli, but I'm not a genius programmer, and I'm just
disciplined enough that I can do without "git rebase -i" before
pushing -- but only because "git commit" doesn't DTWT.  I actually
have had to checkout the previous version into a new workspace and cp
the changed files over, then recommit (and delete the polluted branch)
before bzr and hg got their respective uncommit commands.  (There
probably was a better way but I was offline and impatient.  And as
much as I dislike that style, it hasn't prevented me from learning
"hg strip" and "bzr uncommit" respectively.)

 > (I've made me an alias to do just that.)
 > 
 > More generally, Git's main problem is that it breaks almost every
 > human habit gained with the other VCSes: instead of an easily
 > remembered numerical version IDs

True, for short-term memory.  Because I have to ask what revision I'm
on now and then do the relevant subtraction most of the time.  I never
have to do that with git.  I'm sure bzr and hg have shortcuts for that
now, but now I use those tools rarely enough that I needn't bother
finding a better way.

 > you have those inhuman hashes

Of course they're inhuman.  They're intended to be an approximation to
Goedel numbers.  Even Goedel didn't usually write formulas that way
(although Ramanujan may have ;-).  And SHAs are way better than those
Bizarre revids[1], which are the only stable way to refer to a Bazaar
revision.

 > and the HEAD^^^^ and {m,n} thingies,

You must detest Lisp, then, with its `cddr' and `nth'.  That's all
that HEAD~N means, you know; (nth N HEAD).  When I realized that,
that's when I fell in love with git.  The rest of the DAG traversal
algebra doesn't disturb me, I just ignore it (except for the
occasional use of @{N} and *very* rare uses of ^ other than as an
abbreviation for ~1).

 > instead of being able to say "commit" and commit the entire
 > changeset you need "git add" first, etc. etc.

Nonsense.  "git commit -a ..." has always committed all modified
files, and as far as I know there is no VCS that automatically adds
unknown files to a commit (even if they're not vcs-ignored).

 > _That_ is the single most important problem with Git that begets all
 > the other problems in usability and user-friendliness: it doesn't give
 > a damn about established VCS practices and mnemonics, and breaks them
 > all one after another.  It does that consciously and on purpose.  And
 > after all that, it expects me to like it.  Ha!

Now, now.  Don't anthropomorphize software.  The next thing you know,
you'll be opposing the GPL because "software wants to be free".

Seriously, I don't see any reason why *everybody* should like git.
But I can see lots of reasons why a whole lotta people would love it,
warts and all.  And ... I can see no good reason for Alan et al.  to
cause themselves pain repeatedly by not learning enough about git to
use it effectively.  They can learn, as you have.  They just refuse to.


Footnotes: 
[1]  Which made some sense in Arch.  But they're just weird in Bazaar.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]