From: Michael Olson <mwolson@gnu.org>
Cc: auctex-devel@gnu.org
Subject: Ways of keeping Emacs 22 and external projects in sync (was: CVS repository synchronization for RefTeX)
Date: Mon, 01 Jan 2007 02:09:09 -0500 [thread overview]
Message-ID: <87slev5ilm.fsf_-_@hariken.mwolson.org> (raw)
In-Reply-To: 87fyav1uwb.fsf@neutrino.caeruleus.net
[-- Attachment #1.1: Type: text/plain, Size: 5018 bytes --]
Ralf Angeli <angeli@caeruleus.net> writes:
> * Giorgos Keramidas (2006-12-31) writes:
>
>> The people who currently maintain cc-mode and Gnus may have useful
>> feedback, regarding the tools they use for the job. Do you think
>> it's a good idea to ask them and see what they have to say about
>> the best way to merge RefTeX source-drops with the CVS tree of
>> Emacs and keep merging updates, as they are committed to a separate
>> RefTeX repository?
>
> Well, I was hoping for some of them to chip into this thread.
I guess I'll chip in with how I manage to keep the development version
of ERC synced with that included with Emacs 22. Gnus does it slightly
different than I do, because they merge directly to Emacs 22, rather
than using an intermediary branch like I do.
I use GNU Arch to maintain ERC. Among the various branches are these:
erc--main--0 :: Where development happens
erc--rel--5.1 :: Where the currently previous major release (5.1) gets
updated when it is time to prepare a minor release.
erc--emacs--22 :: The branch which is used to sync to and from the
version in Emacs 22.
emacs--devo--0 :: The equivalent of CVS HEAD for Emacs in Arch, kept
in sync by Miles Bader.
* Preparation
When preparing the Emacs 22 version of ERC for the first time, I added
explicit Arch tags to all of the files which would be included with
Emacs 22. Namely: all .el files that don't depend on anything outside
of the Emacs source tree, NEWS (renamed etc/ERC-NEWS in Emacs 22),
ChangeLog, and the manual. This way, even if the files are in
different directories, Arch can sort them out.
I then set up a couple of scripts (in a scripts/ directory that only
exists in the erc--emacs--22 branch) that help me sync to and from the
Emacs 22 source tree.
common.defs:
===
# Common definitions for syncing ERC -*- Shell-script -*-
EMACS=~/proj/emacs/emacs
ETC=$EMACS/etc
LISP=$EMACS/lisp
MAN=$EMACS/man
===
sync-from-emacs:
===
#!/bin/bash
# Load common definitions
. scripts/common.defs
(cd $LISP/erc && find . -maxdepth 1 -mindepth 1 -type f -exec cp {} $OLDPWD \;)
cp $ETC/ERC-NEWS etc/
cp $MAN/erc.texi man/
rm -f *.elc
===
sync-to-emacs:
===
#!/bin/bash
# Load common definitions
. scripts/common.defs
(cd $LISP/erc && find . -maxdepth 1 -mindepth 1 -type f -exec cp {} $OLDPWD \;)
cp $ETC/ERC-NEWS etc/
cp $MAN/erc.texi man/
rm -f *.elc
===
* Syncing changes
When there are some changes that need to be propagated to Emacs 22, I
first check emacs--devo--0 to see if someone changed things on the
Emacs side, by running ./scripts/sync-from-emacs. If anything is
different than the current contents of erc--emacs--22, I immediately
check them in (to erc--emacs--22).
Then, I apply the necessary changes from erc--main--0. Once all of
the conflicts have been resolved, I check in the code and run
./scripts/sync-to-emacs. I then check to see whether Emacs still
compiles. Depending on how large the changes are, I may test them.
Then, if changes were made to files outside of lisp/erc in the Emacs
tree, I add log entries for them in their respective directories.
That done, I check the changes in to emacs--devo--0 with a brief log
entry.
* Closing thoughts on related subjects
I think it is unrealistic to expect that large, active projects which
are included with Emacs 22 use the Emacs source tree for their main
development area. It makes much more sense for such projects to just
merge in critical updates and new releases. It also makes rapid
development easier, because operations on the revision control system
of choice take significantly more time on the entire Emacs tree as
compared to just the files of the individual project.
I also think it is a very bad idea for Emacs developers to mandate
checking in files individually. It might make sense for work on the
core files in lisp/emacs-lisp/ or the top-level of lisp/, but a
significant percentage of changes made to the other lisp files involve
changing several files at once. Separating log entries for commit
messages begins to become a burden. For operations such as updating
an entire project, this would become very tedious (not to mention
unnecessary, because ChangeLog contains all the information that is
really needed).
With Arch, such changes are treated as a single change to the entire
project, rather than multiple separate changes to single files. There
is no possibility (however remote) of changes to several files being
only partially applied, as long as Arch is the only version control
system involved.
--
Michael Olson -- FSF Associate Member #652 -- http://www.mwolson.org/
Interests: Lisp, text markup, protocols -- Jabber: mwolson_at_hcoop.net
/` |\ | | | Projects: Emacs, Muse, ERC, EMMS, Planner, ErBot, DVC
|_] | \| |_| Reclaim your digital rights by eliminating DRM.
See http://www.defectivebydesign.org/what_is_drm for details.
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
next prev parent reply other threads:[~2007-01-01 7:09 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-28 22:53 CVS repository synchronization for RefTeX Ralf Angeli
2006-12-29 22:04 ` Stefan Monnier
2006-12-29 23:43 ` Ralf Angeli
2006-12-30 14:20 ` Eli Zaretskii
2006-12-30 15:08 ` Ralf Angeli
2006-12-30 15:20 ` Eli Zaretskii
2006-12-30 16:01 ` Ralf Angeli
2006-12-30 16:47 ` Carsten Dominik
2006-12-30 18:03 ` Eli Zaretskii
2006-12-30 18:50 ` Ralf Angeli
2006-12-30 19:03 ` Eli Zaretskii
2006-12-30 19:18 ` Ralf Angeli
2006-12-31 1:46 ` Richard Stallman
2006-12-30 21:28 ` Alan Shutko
2006-12-30 21:55 ` Reiner Steib
2006-12-31 22:27 ` Giorgos Keramidas
2006-12-31 23:57 ` Ralf Angeli
2007-01-01 7:09 ` Michael Olson [this message]
2007-01-01 15:21 ` Ways of keeping Emacs 22 and external projects in sync Ralf Angeli
2007-01-01 17:59 ` Reiner Steib
2007-01-01 18:36 ` Giorgos Keramidas
2007-01-03 10:43 ` Yavor Doganov
2007-01-03 18:32 ` Michael Olson
2007-01-03 18:29 ` Michael Olson
2007-01-03 19:53 ` Ralf Angeli
2007-01-03 22:37 ` Michael Olson
2007-01-01 18:20 ` Ways of keeping Emacs 22 and external projects in sync (was: CVS repository synchronization for RefTeX) Giorgos Keramidas
2007-01-01 21:56 ` CVS repository synchronization for RefTeX Richard Stallman
2006-12-30 18:23 ` Richard Stallman
2006-12-30 18:39 ` Ralf Angeli
2006-12-31 1:47 ` Richard Stallman
2007-01-01 16:01 ` David Kastrup
2007-01-02 3:09 ` Richard Stallman
2007-01-02 7:43 ` David Kastrup
2007-01-02 21:24 ` Richard Stallman
2007-01-03 8:48 ` David Kastrup
2007-01-04 2:31 ` Richard Stallman
2007-01-04 21:51 ` David Kastrup
2007-01-06 2:54 ` Richard Stallman
2007-01-06 9:14 ` David Kastrup
2006-12-30 21:54 ` Reiner Steib
2006-12-31 19:36 ` Ralf Angeli
2007-01-01 17:59 ` Reiner Steib
2007-01-01 19:12 ` Ralf Angeli
2006-12-30 22:07 ` Stefan Monnier
2006-12-29 22:59 ` Richard Stallman
2006-12-30 17:00 ` David Kastrup
2007-01-07 21:42 ` Bill Wohler
2007-01-08 19:25 ` [AUCTeX-devel] " Ralf Angeli
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=87slev5ilm.fsf_-_@hariken.mwolson.org \
--to=mwolson@gnu.org \
--cc=auctex-devel@gnu.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.