From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org, handa@m17n.org
Subject: Re: Syncing Gnus and Emacs repositories
Date: Wed, 20 Jun 2007 02:53:01 +0900 [thread overview]
Message-ID: <878xaf7rwi.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <uodjcqxvl.fsf@gnu.org>
Eli Zaretskii writes:
> Jeez, guys, I just asked a honest question, because I really _wanted_
> to understand whether Stephen knew something about the Unicode branch
> that I didn't.
I don't claim to know anything special about the Unicode branch,
because in fact I don't. What I do know about from experience is what
happens when you try to conduct mainline development on a CVS branch,
and I have enough knowledge of what is involved in Mule work and in
converting from Mule code to Unicode to be confident that
emacs-unicode-2 is not exempt from the generic problems.
Your questions may have been "simple" and "honest" to you, but they
looked like attempts to score debating points to me. Here are my
"simple" and "honest" answers:
>>> So in that case, making such changes in the Unicode branch directly,
>>> as I suggested, would be a good way of installing changes without
>>> interfering with the future merge, right?
>> Assuming that those making changes in the Unicode branch are
>> thoroughly familiar with it, yes.
> Are you sure such a thorough familiarity is indeed required? AFAIK,
> most of the radical changes in the Unicode branch are fairly
> low-level;
Statistically, I'm sure. If extra work is conducted on the branch,
there is some probability of collision. Since by definition that work
is too disruptive for the trunk, I suppose it's higher than you might
otherwise think. The more work you force into that branch, the more
disruption. It's possible that no mistakes will be made. Why risk
that they will?
>> Bottom line: The risks are high, the benefits are small.
Nobody has proposed any significant benefits to this, except that it's
a "compromise". Why take *any* risk, just for the sake of a nominal
compromise?
OTOH, all of your arguments *do* apply to opening the trunk to merge
of emacs-unicode-2 (and other disruptive features). I see very little
risk in opening the trunk *now*, not even in terms of packages that
would be ported to Emacs 22.2-on-the-trunk but not Emacs
22.2-on-a-branch.
>> I strongly recommend against doing substantial work on a CVS
>> branch
> Well, the Unicode branch exists for a long time, so we are already
> there.
[That is not an attempt at dialog!]
>> unless it has a single theme and is explicitly aimed at a single
>> merge to mainline, then retirement.
> I don't see how the CVS deficiencies are not relevant for a
> single-theme development.
Because in single-theme development the flow is one-way, from trunk to
branch, until you decide to merge. You don't even want to port typo
fixes in docstrings back, because they *will* cause merge conflicts.
This discipline is easy to maintain in single-theme development.
It is much harder to do with multiple developers who think of the
branch as "home" to their projects, but not of themselves as members
of all the projects. It sounds counter-intuitive, but it is a fact
that such merge conflicts creep in. Surprisingly often they strike in
places where it's hard to determine which hunk is the "true" one.[1]
I recall on several occasions looking at a pair of hunks, one of which
I wrote, but not knowing which one! In CVS it's not easy to find out,
you need to talk to the server.
Second, effectively a line of development where independent projects
are being conducted is in a continuous state of merge. Conflicts
arise, collisions in simultaneous commits are very hard to straighten
out since CVS commits to multiple files are not atomic, and the
repository ends up being inconsistent with *all* developers'
workspaces. Your best hope of keeping this straight is to use CVS
itself to keep individual projects on subbranches, but then you *do*
run into the CVS deficiencies with branch-to-branch work.
> In any case, I think switching to Unicode can hardly be classified
> as ``single-theme'', since it touches so many internals.
[Another dialog-killer. Obviously, I had a reason for classifying it
so. Why do you deny it without asking WTF I'm talking about?]
Let me quote from a master:
I will contend that conceptual integrity is *the* most important
consideration in system design. It is better to have a system
omit certain anomolous features and improvements, but to reflect
one set of design ideas, than to have one that contains many good
but independent and uncoordinated ideas. ... It is not enough to
learn the elements and rules of combination; one must also learn
the idiomatic usage, a whole lore of how the elements are combined
in practice. ... Every part must even use the same techniques in
syntax and analogous notions in semantics. Ease of use, then,
dictates unity of design, conceptual integrity. Conceptual
integrity in turn dictates that the design must proceed from one
mind.... [Frederick Brooks, _The Mythical Man-Month_, Ch. 4]
The emacs-unicode-2 branch is mostly the work of one man, Ken'ichi
Handa. Having observed Handa-san's work in the past, I'm willing to
bet it has conceptual integrity. In other words, it has a theme:
changing the internal coding from Mule coding to Unicode while
maintaining the look and feel of Emacs and conforming to Unicode. All
of the myriad of little changes can be described by that theme.
As you point out from a different point of view, as soon as it gets
merged to trunk, that conceptual integrity will start to break down.
But at that point, the theme is *part of Emacs*, and the developer
community will quickly come to learn to try to conserve it. As long
as it's on a branch, it has no such status, it must fend for itself.
If in that branch it must compete with other independent projects for
attention, the conceptual integrity will start to degrade. This isn't
part of my XEmacs 21.4 release experience, but I've observed both the
instinct to conserve "XEmacsness" and degradation of conceptual
integrity on many occasions in XEmacs.
For a question as central to a text editor as "what is a character?",
I think conceptual integrity is something to be preserved at almost
any cost.
Once again, I don't contend this all is always true, but in this case
I see significant risk to the strategy of opening emacs-unicode-2 to
commits other than those approved specifically by Handa-san, and no
gain.
Footnotes:
[1] Bram Cohen of BitTorrent fame claims that his "patience diff"
algorithm helps this a lot, but none of the projects I work on use bzr
yet, so I don't know.
next prev parent reply other threads:[~2007-06-19 17:53 UTC|newest]
Thread overview: 134+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-13 18:41 Syncing Gnus and Emacs repositories Reiner Steib
2007-06-13 19:57 ` Stefan Monnier
2007-06-13 21:47 ` Reiner Steib
2007-06-13 22:21 ` Stefan Monnier
2007-06-13 22:41 ` Glenn Morris
2007-06-13 23:22 ` Chong Yidong
2007-06-14 6:31 ` Emacs 23 development policy (was: Syncing Gnus and Emacs repositories) Reiner Steib
2007-06-14 7:25 ` David Reitter
2007-06-14 13:42 ` Adrian Robert
2007-06-14 19:56 ` Emacs 23 development policy Stefan Monnier
2007-06-14 16:20 ` Syncing Gnus and Emacs repositories Richard Stallman
2007-06-14 16:27 ` Chong Yidong
2007-06-15 0:57 ` Kenichi Handa
2007-06-15 2:03 ` Miles Bader
2007-06-15 3:14 ` Kenichi Handa
2007-06-15 2:35 ` Nick Roberts
2007-06-15 19:22 ` Richard Stallman
2007-06-15 21:48 ` Nick Roberts
2007-06-16 18:50 ` Richard Stallman
2007-06-16 19:23 ` Chong Yidong
2007-06-16 19:28 ` David Kastrup
2007-06-17 8:54 ` Richard Stallman
2007-06-17 19:47 ` David Kastrup
2007-06-17 8:54 ` Richard Stallman
2007-06-18 1:36 ` Kenichi Handa
2007-06-18 21:30 ` Richard Stallman
2007-06-19 5:01 ` Kenichi Handa
2007-06-19 5:31 ` Stefan Monnier
2007-06-19 22:26 ` Richard Stallman
2007-06-20 13:18 ` Kenichi Handa
2007-06-20 17:36 ` Richard Stallman
2007-06-15 22:12 ` David Kastrup
2007-06-16 10:48 ` Eli Zaretskii
2007-06-16 12:09 ` David Kastrup
2007-06-16 13:01 ` Eli Zaretskii
2007-06-16 13:13 ` David Kastrup
2007-06-16 13:23 ` Eli Zaretskii
2007-06-16 14:05 ` David Kastrup
2007-06-16 16:34 ` Eli Zaretskii
2007-06-16 17:38 ` David Kastrup
2007-06-16 18:26 ` Eli Zaretskii
2007-06-16 13:55 ` YAMAMOTO Mitsuharu
2007-06-16 14:16 ` David Kastrup
2007-06-17 23:07 ` Kenichi Handa
2007-06-18 3:10 ` Eli Zaretskii
2007-06-18 5:18 ` David Kastrup
2007-06-18 6:01 ` Nick Roberts
2007-06-18 19:12 ` Eli Zaretskii
2007-06-18 21:12 ` Nick Roberts
2007-06-19 22:25 ` Richard Stallman
2007-06-18 19:11 ` Eli Zaretskii
2007-06-18 21:30 ` Richard Stallman
2007-06-18 6:53 ` Stephen J. Turnbull
2007-06-18 7:24 ` David Kastrup
2007-06-18 8:34 ` Stephen J. Turnbull
2007-06-18 8:50 ` David Kastrup
2007-06-18 19:23 ` Eli Zaretskii
2007-06-19 0:53 ` Stephen J. Turnbull
2007-06-19 5:17 ` Eli Zaretskii
2007-06-19 5:37 ` David Kastrup
2007-06-19 6:09 ` Eli Zaretskii
2007-06-19 17:53 ` Stephen J. Turnbull [this message]
2007-06-19 5:21 ` David Kastrup
2007-06-19 2:19 ` Kenichi Handa
2007-06-19 5:20 ` Eli Zaretskii
2007-06-23 8:13 ` Giorgos Keramidas
2007-06-16 18:50 ` Richard Stallman
2007-06-16 14:22 ` Proposal for a 22.2/trunk development model (was: Syncing Gnus and Emacs repositories) Dan Nicolaescu
2007-06-16 14:37 ` Proposal for a 22.2/trunk development model David Kastrup
2007-06-16 16:01 ` Dan Nicolaescu
2007-06-16 16:41 ` David Kastrup
2007-06-16 17:05 ` Dan Nicolaescu
2007-07-01 20:40 ` Proposal for a 22.2/trunk development model (was: Syncing Gnus and Emacs repositories) Richard Stallman
2007-06-15 19:21 ` Syncing Gnus and Emacs repositories Richard Stallman
2007-06-14 16:48 ` Jay Belanger
2007-06-17 13:47 ` Reiner Steib
2007-07-09 2:22 ` Miles Bader
2007-07-09 17:21 ` Richard Stallman
2007-07-10 10:33 ` Miles Bader
2007-07-10 12:19 ` Daiki Ueno
2007-07-10 15:51 ` Leo
2007-07-10 20:05 ` Miles Bader
2006-12-16 2:58 ` [bug] PGG shows ?? when prompt for passphrase Leo
2006-12-17 1:30 ` Daiki Ueno
2006-12-17 2:18 ` Leo
2006-12-17 3:28 ` Daiki Ueno
2006-12-17 4:18 ` Leo
2006-12-17 4:28 ` Daiki Ueno
2006-12-17 5:27 ` Leo
2006-12-18 1:12 ` Richard Stallman
2006-12-18 1:34 ` Daiki Ueno
[not found] ` <E1GwhJI-0003jz-GI@fencepost.gnu.org>
2006-12-19 23:55 ` Daiki Ueno
[not found] ` <E1Gw733-00050z-Ic@fencepost.gnu.org>
[not found] ` <c371ac3b-6629-4e1a-a023-92982698664b@well-done.deisui.org>
[not found] ` <6662a3b9-1148-4aa0-bd2d-29a67be38d76@well-done.deisui.org>
[not found] ` <E1Gx14z-0000Zc-Lm@fencepost.gnu.org>
[not found] ` <5a520e06-4ee3-4c4f-9345-d49a666516f9@well-done.deisui.org>
[not found] ` <E1GyDFo-00006s-IW@fencepost.gnu.org>
[not found] ` <7f60c21d-2f66-4c4b-9abb-e377ca24a153@well-done.deisui.org>
[not found] ` <fe674575-f87f-46e4-8287-6481b3fc6f03@well-done.deisui.org>
[not found] ` <E1Gz20z-0003hC-Nb@fencepost.gnu.org>
[not found] ` <844cd50a-ec18-4b09-a057-35bdfb5173fd@well-done.deisui.org>
[not found] ` <E1GzP1P-0006JH-Lb@fencepost.gnu.org>
[not found] ` <8ba25607-9381-4a27-ae53-8b0f3ccc3ac1@well-done.deisui.org>
[not found] ` <E1Gzg8G-0002bZ-JG@fencepost.gnu.org>
[not found] ` <366fa6ab-42a0-4df5-a17f-4ac3d1744d78@well-done.deisui.org>
[not found] ` <E1H0Jui-0005YH-HB@fencepost.gnu.org>
[not found] ` <ec5e0f1b-45c5-4ed5-ae1c-766fa33e3ee0@well-done.deisui.org>
2006-12-30 18:24 ` pgg-encrypt is a pain in the neck Richard Stallman
2006-12-30 19:41 ` Sascha Wilde
2006-12-31 1:02 ` Daiki Ueno
2006-12-31 12:27 ` Sascha Wilde
2006-12-31 14:07 ` Reiner Steib
2006-12-31 14:38 ` Daiki Ueno
2006-12-31 22:13 ` Richard Stallman
2006-12-31 1:47 ` Richard Stallman
2006-12-31 12:54 ` Sascha Wilde
2006-12-31 14:13 ` Daiki Ueno
2006-12-31 22:13 ` Richard Stallman
2007-01-02 0:28 ` Daiki Ueno
2007-01-02 16:37 ` Richard Stallman
2007-01-02 19:53 ` Reiner Steib
2006-12-31 22:13 ` Richard Stallman
2007-01-02 18:43 ` Stefan Monnier
2006-12-31 1:46 ` Richard Stallman
[not found] ` <E1H0Juj-0005YY-RU@fencepost.gnu.org>
2007-07-10 22:47 ` Syncing Gnus and Emacs repositories Daiki Ueno
2007-07-10 22:54 ` Miles Bader
2007-07-11 0:07 ` Daiki Ueno
2007-07-11 21:03 ` Richard Stallman
2007-07-10 21:29 ` Stefan Monnier
2007-07-11 2:25 ` Miles Bader
2007-07-11 21:03 ` Richard Stallman
2007-07-11 3:05 ` Richard Stallman
2007-07-11 3:43 ` Daiki Ueno
2007-07-11 9:38 ` Sascha Wilde
2007-07-11 10:22 ` Daiki Ueno
2007-07-11 21:04 ` Richard Stallman
2007-06-14 8:38 ` Miles Bader
[not found] <E1Ibp6i-0001vw-LM@fencepost.gnu.org>
[not found] ` <b4m7im7spqn.fsf@jpl.org>
2007-10-01 17:40 ` [mail.list.steel.mental@gmail.com: chinese group names can not displayed properly in *Complation* buffer] Richard Stallman
2007-10-01 18:27 ` Syncing Gnus and Emacs repositories (was: [mail.list.steel.mental@gmail.com: chinese group names can not displayed properly in *Complation* buffer]) Reiner Steib
2007-10-02 3:32 ` Richard Stallman
2007-10-02 7:16 ` Syncing Gnus and Emacs repositories Reiner Steib
2007-10-02 13:35 ` Daiki Ueno
2007-10-02 21:59 ` Richard Stallman
2007-10-03 11:09 ` Daiki Ueno
2007-10-03 11:29 ` Leo
2007-10-03 13:41 ` Reiner Steib
2007-10-03 14:10 ` Leo
2007-10-04 2:03 ` Richard Stallman
2007-10-16 21:10 ` Reiner Steib
2007-10-16 21:19 ` Miles Bader
2007-10-02 21:59 ` Richard Stallman
2007-10-16 20:58 ` Reiner Steib
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=878xaf7rwi.fsf@uwakimon.sk.tsukuba.ac.jp \
--to=stephen@xemacs.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=handa@m17n.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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.