emacs-devel
[Top][All Lists]
Advanced

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

Re: The MH-E repository


From: Miles Bader
Subject: Re: The MH-E repository
Date: Wed, 1 Jun 2005 06:39:34 +0900

On 6/1/05, Bill Wohler <address@hidden> wrote:
> I'm not familiar with Arch. Are you talking about
> http://www.gnu.org/software/gnu-arch/?

Yes; the wiki at (I think) http://wiki.gnuarch.org might be more informative.

The key property of arch that makes things easier is the ability to
create and apply "changesets" (basically, patches) that operate by
file _identity_ rather than filename.  So a changeset from the Gnus
tree does more or less the right thing when applied to Emacs tree. 
Arch also keeps track of what changes have been merged, which reduces
the need for manual book-keeping (one of the most stressful things
about more manual merging, I find).

Note that this doesn't remove the need for manual intervention, as
there are cases where the right thing doesn't happen, but it takes
care of about 95% of the work.  I have a sort of mental checklist of
exceptional cases to be on the lookout for and be ready to fixup by
hand (for instance the Emacs file "man/ChangeLog" contains entries for
changes to gnus texinfo files, but also many other non-Gnus texinfo
files, and only the Gnus-related changes should go into the Gnus
tree).

Note that my usage of Arch for this is sort of a hack -- Arch has no
explicit notion of a "subtree"; merging in the Emacs => Gnus direction
results in many "unappliable" changes, because they are to files which
don't exist in Gnus (Arch puts such changes in a scratch directory
where you can look at them if you want).

> How often do you sync?

Usually about every 2-3 days; however I also follow the Gnus mailing
list and sync immediately if someone makes an important change.  Note
that the relationship is:

    Emacs trunk <=> Gnus-5.10 branch (bi-directional)
     Gnus trunk <== Gnus-5.10 branch (one-way)

So changes from Emacs eventually end up in the Gnus trunk too, via the
Gnus 5.10 branch.  Activity on the Gnus 5.10 branch is relatively
light, which makes the job easier.

> Do you clone te CVS check-ins including log messages?

CVS log messages are not used; Arch is "tree changeset" oriented
rather than file-oriented, so there's no easy way to maintain them. 
However in Emacs (unlike some projects), basically all changes have
in-tree ChangeLog entries too, so my scripts try to create relevant
log messages from, which are what gets committed to CVS.

I've relatively knowledgeable about the way Arch works, and have many
of my own scripts, so I'm not sure how easy it would be for someone to
start doing the same thing from scratch.

BTW, I would certainly be willing to try syncing MH-E in the same way
I sync Gnus.  My experience with Gnus is that while it's a bit of
manual work, it's not that much, and it's not unpleasant.

-Miles
--
Do not taunt Happy Fun Ball.




reply via email to

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