emacs-devel
[Top][All Lists]
Advanced

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

Re: Ways of keeping Emacs 22 and external projects in sync


From: Michael Olson
Subject: Re: Ways of keeping Emacs 22 and external projects in sync
Date: Wed, 03 Jan 2007 13:29:13 -0500
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.91 (gnu/linux)

Ralf Angeli <address@hidden> writes:

>> 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
>> ===
>
> The scripts look identical.  Is that correct?

Sorry about that.  It should have been:

sync-to-emacs:
===
#!/bin/bash

# Load common definitions
. scripts/common.defs

find . -maxdepth 1 -mindepth 1 -type f -exec cp {} $LISP/erc \;
find ./etc -maxdepth 1 -mindepth 1 -type f -exec cp {} $ETC \;
find ./man -maxdepth 1 -mindepth 1 -type f -exec cp {} $MAN \;
===

Sorry about that.

>> When there are some changes that need to be propagated to Emacs 22, I
>
> So you are updating ERC in Emacs not on a release-by-release basis,
> but rather when some important changes need to be propagated?

Yes.  Of course, it's a priority to merge releases to Emacs 22.

> Do you apply a tag in that case in order to identify the file
> revisions if somebody has a bug report or support request referring
> to the ERC version in Emacs or do you just use the files in Emacs
> directly for testing and debugging?

No.  I can get changes for any revision that I commit at any time, so
there isn't a need for making tags.  I use DVC
(http://download.gna.org/dvc/) to easily fetch changes: it gives me a
listing of patches that I've committed, and I only need to hit "=" to
view the one at point in diff form.

I usually do debugging in the erc--main branch, because the versions
are consistent enough that problems should be replicable there.  If
needed, I could easily just remove the (add-to-list 'load-path ...)
line for ERC from my config, and work in Emacs directly, calling
sync-from-emacs when I've fixed the problem (to propagate to
erc--emacs--22), and so on.

>> 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).
>
> Do you regularly synch from Emacs or just when you are about to
> synch to Emacs?

Usually I only do it when I'm about to sync to Emacs.  I also do it
whenever I run "tla update" on Emacs 22 (about once a month), if I
notice that some ERC files were modified.

> My idea for RefTeX would have been that a synch from Emacs to RefTeX
> is done regulary, but directly instead of using an intermediate
> repository.

That would work, too.

>> 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).
>
> That reminds me: When you are synching from Emacs to ERC (and vice
> versa) the ChangeLog file is probably handled the same way Lisp files
> are.  Because log entries of changes to RefTeX in Emacs currently end
> up in lisp/ChangeLog we'd need a separate ChangeLog file for RefTeX
> for this to work.

That would be trickier.  I assumed RefTeX would be getting its own
subdirectory in lisp/.  You might have to keep a separate ChangeLog
and manually copy over ChangeLog entries when syncing to Emacs 22.

>> 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.
>
> As Savannah supports Arch repositories now it should be no problem to
> maintain RefTeX in such a repository.  What I would be missing with
> Arch would be something like PCL-CVS and the web interface like
> Savannah provides it for CVS repositories.

I don't really know what PCL-CVS is used for, but DVC (link given
above) satisfies me.  It really brings out Arch's potential.

As for a web interface, I set up one on my own webserver, and edited
Savannah's configuration for ERC to point to it.  Link is:
http://www.mwolson.org/cgi-bin/archzoom/archzoom.cgi/address@hidden

For safety's sake (to keep from getting close to my disk space quota),
I have a cron job on my webserver that removes the generated
changesets and such once a week.  This assumes that ArchZoom has
temp_dir = /home/mwolson/tmp.

remove-tmp:
===
#!/bin/sh
# Remove ArchZoom cruft

PRE=/home/mwolson

[ -d $PRE/,,tmp ] && exit 0 || :
[ -d $PRE/tmp ] || exit 0
mv /home/mwolson/tmp /home/mwolson/,,tmp
mkdir $PRE/tmp
rm -fr $PRE/,,tmp
===

-- 
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: pgp_CUmNeHdrx.pgp
Description: PGP signature


reply via email to

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