emacs-devel
[Top][All Lists]
Advanced

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

Re: Obscure error/warning/information message from git pull


From: Stephen J. Turnbull
Subject: Re: Obscure error/warning/information message from git pull
Date: Wed, 19 Nov 2014 07:59:44 +0900

Eli Zaretskii writes:

 > > Git itself has no "branches" that are "active lines of development"
 > > in its data model.
 > 
 > Git might not have it, but we its users do.

True, but in practice there are *no* VCSes that have "active lines of
development".  They have branch heads (aka "tips" in some VCSes), and
the VCS will just extend the branch from there.  Some VCSes make it
hard to establish a new head, and bitch unmercifully if you leave it
unmerged.  But the active line of development is still in your head --
even Bazaar doesn't try to keep you from committing arbitrary crap to
the mainline.  It just tries to "encourage" you to commit arbitrary
crap to the mainline, or alternatively postpone nonlinear work.  If
that works for you, good for you, but git is explicitly designed to
avoid that constraint.

That constraint is fine for projects where you can move ahead in a
straight line, and Emacs's workflow has been designed that way (eg,
only one supported version plus a free-for-all on trunk).  A lot of us
find that chafing, and enjoy the freedom that git provides to unify
our nonlinear practices with *one* concept that I might call "focus
of development".  Git's notion of branch ref is an excellent
approximation to focus of development in my experience, and I use it
a *lot*.

The analogy to Emacs's "modeless editing"[1] is quite appropriate, I
think.

 > > Kinda like "everything is a buffer" in Emacs.
 > 
 > But everything is not a buffer in Emacs.  There are other objects as
 > well, most of them quite different from buffers.

You're missing the point.  There are other objects in *Lisp*, but most
things users do are operations on buffers as far as the UI is
concerned.  Similarly, there are lots of things in git besides branch
refs, but most things users do operate on branch heads.  It's both an
approximation to git and an approximation as an analogy of git to
Emacs, but there's some truth there.


Footnotes: 
[1]  Ie, no division into "insert mode" and "edit mode".




reply via email to

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