emacs-devel
[Top][All Lists]
Advanced

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

Re: VC mode and git


From: Stephen J. Turnbull
Subject: Re: VC mode and git
Date: Mon, 30 Mar 2015 02:53:04 +0900

Richard Stallman writes:

 >                                         Karl Fogel and I wrote a modern
 >   > workflow (one which is used successfully by many many developers in
 >   > projects using DVCSes),
 > 
 > Felicitations for them, but why should that be relevant to this issue.

It's relevant because Emacs needed a DVCS, many Emacs developers
needed a distributed workflow, there are *many* possible workflows,
and it made sense to describe one that is proven to be successful and
adapted to the needs of a great many developers in some very active
projects.  Describing several is known to confuse people, and worse,
they often try to pick and choose parts of different workflows without
understanding them.

 > There is a reason why some people like that workflow, and a reason
 > why it screwed me.

You seem to be confused here.  The popular workflow referred to above
has nothing to do with the GitForEmacsDevs workflow as far as I know
(I had nothing to do with GitForEmacsDevs).  And it wasn't the
GitForEmacsDevs workflow that screwed you, either, as you yourself
testify that you didn't follow it accurately at least in respect of
pushing after committing.  Evidently you were using some homebrew
workflow that may, or may not, have closely resembled GitForEmacsDevs.

 >   >   Fortunately, you guys were quite late to the party,
 >   > and everybody else either used a DVCS-enhanced workflow already, or
 >   > read the original BzrForEmacsDevs with the DVCS-enhanced workflow.
 > 
 > If that happened, what is fortunate about it?  You seem to be
 > campaigning to make people stop using CVS-style workflow, even if
 > it is good for them.

Make existing users stop, no, I think you are confusing me with ESR
(among others).  I don't care if you change, that's your decision to
make.  Since you evidently are no longer an active developer, I don't
even really see any advantages for anybody in you switching to a
distributed workflow.  But you're a very unusual case.

Discourage new developers from using CVS-style workflows, and
encourage developers who have not yet tried distributed workflow to
try it, yes, I do intend that.

The CVS-style workflow may be good for some individuals.  In your
case, a long-standing workflow that doesn't seem to benefit from local
commits, and you have a privileged position: no one is going to tell
you not to commit whatever you want to commit to mainline.  And you're
used to waiting for a window to commit.  It's perfect for you.

That isn't true of most Emacs developers, especially those working on
more extensive changes -- most prefer *not* to check in to the public
repository until they have a beta-quality complete change, but they
*do* want to commit so they can move on to another task (perhaps
related and intended to be pushed at the same time, perhaps not).  A
distributed workflow gives them the benefits of version control
without interfering with the project mainline or vice versa, until
they're ready to integrate.

Furthermore, having most developers on a distributed workflow is a lot
less frustrating during peak periods such as just before a feature
freeze.  I remember well the annoyance of having somebody commit just
as I was ready to do so, and having to resolve a pile of irrelevant
conflicts in files I wasn't ready to commit just to make CVS happy.[1]
Worse, a developer would often have a queue of patches, and commit
them one after another at several minutes interval between commits.
In a DVCS, you can commit at will with intervals of seconds, minutes,
or hours, but the push always takes the same amount of time, normally
a few seconds.  Your push may still fail, and you'll need to merge
locally and try again, but the windows for successful push are longer.

 > We can see that also in the sneer-word "modern", which is further
 > name-calling.

"Modern" in my usage above simply means "adapted to tools developed
more recently than CVS."  I live in Asia, where tradition is
appreciated and "modern" is not necessarily a compliment, and
certainly didn't mean to sneer at your use of VCS.

Footnotes: 
[1]  I never used svn in anger, it might be better in this respect.
But in CVS it could be a real PITA.




reply via email to

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