[Top][All Lists]

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

Re: Merging CEDET

From: David Engster
Subject: Re: Merging CEDET
Date: Sun, 03 Jun 2012 20:00:53 +0200
User-agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.1.50 (gnu/linux)

[Eric forgot to include emacs-devel in CC, which is why I'm quoting his
message fully at the end.]

Eric M. Ludlam writes:
> On 06/02/2012 03:47 AM, Chong Yidong wrote:
>> Hello CEDET folks,
>> Is the CEDET file-rename branch ready?  If so, now is a good time to
>> start merging into Emacs.

>   From the perspective of content, the current trunk in CEDET bzr
> matches up with CEDET 1.1 closely.

To make things clear: I have merged our 'newtrunk' branch (which
included the changes in 'file-rename') into our development trunk. This
means we are now finally working directly with the new file and
directory structure from Emacs, and most changes from Emacs trunk are
now incorporated into CEDET.

As I've already written some time ago, I've started to write a special
package for merging Emacs<->CEDET. The most important goal is to keep
the granularity of commits in both repositories. For this to work, we
should get our work-flow straight before we start.

My idea is the following and I'd like to hear opinions from the VCS
gurus around here if this is the right approach:

  We use three branches:

    - CEDET trunk (in the following: 'cedet')
    - Emacs trunk (in the following: 'emacs'). Of course, we do not
      care for the full Emacs trunk, but only for the CEDET-related
      files (essentially: lisp/cedet and lisp/emacs-lisp/eieio*).
    - a special branch inside of CEDET upstream (in the following: 'merge')

  The 'merge' branch is special in that it follows Emacs *and* CEDET
  development. It is derived from the old 'file-rename' branch and thus
  has a common history with 'cedet', so that we can do proper merges
  from and to 'cedet'.

The main concept is this:

  - 'merge' follows 'emacs' as close as possible. That means:
    - It must *not* have any files from 'cedet' which should not end
      up in 'emacs'. Most importantly, this means that *everything*
      that is in 'merge' must have signed papers.
    - It follows exactly the Emacs directory structure, meaning that
      EIEIO is in lisp/emacs-lisp.

  - Syncing with 'cedet' happens through *merges*.

  - Syncing with 'emacs' happens through *cherry picking*, which with
    bzr just boils down to applying patches from "bzr diff -c
    <revision>". Alternatively, Lluís "bzr transfer" plugin can be used,
    but I couldn't get it to work. Either way, the special
    CEDET-Emacs-merge package I've written is used to track which
    commits have been merged and which not (and for what reason).

I could think of two alternatives to this approach:

  - Drop the special 'merge' branch and directly cherry-pick between the
    two repositories, hence essentially do what org and Gnus are
    currently doing. However, I think this can only work well if both
    repositories are very similar, and CEDET upstream still contains
    lots of stuff which isn't in Emacs.

  - Use *two* merge branches 'to-emacs' and 'from-emacs', that means one
    for each direction and both with a common history with 'cedet'.
    This was actually the initial idea, but by now I think this approach
    is just over-complicating things and could easily get pretty messy.


Eric's full mail:

>  From a quality perspective it is pretty good in that it passes all
> the unit tests and the key interactive tests.  I am familiar with a
> couple typo type bugs I need to check in from the translation to the
> new file format still.  I'll do that today. From a copyright
> assignment perspective, all is good, though my last employer release
> for changes ends on July 3, so I can help out on any big changes for a
> month, and get another release soon if needed.
>   From the perspective of transplanting changes between our branches,
> David has merged many changes from Emacs into CEDET, and Lluis was
> working on a script to make it easy to do, so I added him to the CC
> list.  Since CEDET includes a 'contrib' area that doesn't have
> copyright assignments, you will still need to avoid that.  We have
> dropped explicit support for older Emacs versions so many previous
> conflicts have since been removed.  The test suites have all been
> converted to the new file system, so Emacs can use that if you'd like
> to enable the complete suite in Emacs core also.
> All-in-all I think you will be in good shape unless David or Lluis is
> familiar with something I am not.  We may need to do a second merge
> later, since our conversion to the new file name format is still quite
> fresh.
> Thanks!
> Eric

reply via email to

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