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: Giorgos Keramidas
Subject: Re: Ways of keeping Emacs 22 and external projects in sync
Date: Mon, 1 Jan 2007 20:36:56 +0200

On 2007-01-01 16:21, Ralf Angeli <address@hidden> wrote:
> * Michael Olson (2007-01-01) writes:
> > 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?  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?

Arch is a distributed SCM, and it can keep track of what changes have
been merged.  Michael mentioned that he keeps various Arch branches for
synchronizing the ERC tree with Emacs:

    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.

Merging changesets from one Arch branch to another one is easy.  Arch
keeps track of the changesets you have merged from erc--main--0 into
erc--emacs--22.

>> 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?
>
> 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.

In distributed SCM's a "branch" is, effectively, a "repository".  For
example, for my own Emacs stuff, I keep the following "branches" around,
with Mercurial (another distributed SCM):

    emacs/gnu
    emacs/keramida

Changes are automatically pulled into emacs/gnu, from a cron job, using
a conversion script which pulls over changesets from CVS.

I keep working in emacs/keramida, making my own changes.

Whenever I want to 'resync' with the official Emacs repository, I pull
changes from emacs/gnu into emacs/keramida and merge locally, inside the
emacs/keramida repository-branch.

After a merge, I can diff with emacs/gnu and post patches to the
official Emacs source tree.

My own suggestion, which pretty much matches what Michael and Miles do
with Arch, is that you *do* keep intermediate merge-branches in your own
repository, whatever the SCM you use will be :)





reply via email to

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