From: Lluís <xscript@gmx.net>
To: David Engster <deng@randomsample.de>,
Cc: "Eric M. Ludlam" <ericludlam@gmail.com>,
"Eric M. Ludlam" <zappo@gnu.org>, Chong Yidong <cyd@gnu.org>,
emacs-devel@gnu.org
Subject: Re: Merging CEDET
Date: Sun, 03 Jun 2012 23:51:50 +0200 [thread overview]
Message-ID: <8762b8awsp.fsf@fimbulvetr.bsc.es> (raw)
In-Reply-To: <87aa0kp962.fsf@engster.org> (David Engster's message of "Sun, 03 Jun 2012 20:00:53 +0200")
David Engster writes:
> [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.
The original idea was that 2 steps are still missing:
- Check which changes in emacs are still missing in cedet's 'file-rename'
branch. When done, set that emacs revision in stone, as it will be the base
for future merges from emacs to cedet.
- Emacs people should check the 'file-rename' branch to manually select any
desired changes to integrate into Emacs. When done, set that cedet revision in
stone, as it will be the base for future merges from cedet to emacs.
Now, David finished stabilizing 'file-rename' in 'newtrunk' (as it contained
lots of other changes that were also necessary but not interesting to emacs), so
I'm no longer sure if 'newtrunk' should be used instead, as it might contain
some changes from emacs that are not present in 'file-rename'.
> 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.
The initial workflow was (=> manual/scripted/whatever operation; -> regular
operation):
emacs/trunk => cedet/from-emacs
This requires renaming some files in the process (I wrote "bzr transplant" for
this specific case).
cedet/from-emacs -> cedet/trunk
In principle, almost no changes should happen in emacs, so this would require
almost no reviews.
cedet/trunk -> cedet/to-emacs
Not all changes in cedet should immediately go to the next emacs version, so
this would probably be based on cherry-picking.
cedet/to-emacs => emacs/trunk
This requires renaming some files in the process, too (again, can be
automated).
For the sake of completeness, if 'file-rename' were used to establish the
current synchronization point, under this scheme it would be branched twice as
cedet/{from,to}-emacs.
If I understood it correctly, you're proposing to unify branches
cedet/{from,to}-emacs. I just think it's less messier to have them separate.
Lluis
--
"And it's much the same thing with knowledge, for whenever you learn
something new, the whole world becomes that much richer."
-- The Princess of Pure Reason, as told by Norton Juster in The Phantom
Tollbooth
next prev parent reply other threads:[~2012-06-03 21:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-02 7:47 Merging CEDET Chong Yidong
[not found] ` <4FCB6B01.8020600@siege-engine.com>
2012-06-03 18:00 ` David Engster
2012-06-03 21:51 ` Lluís [this message]
2012-06-04 13:34 ` Stefan Monnier
2012-07-28 15:32 ` Chong Yidong
2012-07-28 15:38 ` Emacs 24.2 merge window (was: Merging CEDET) Bastien
2012-07-28 16:23 ` Merging CEDET David Engster
2012-07-29 3:21 ` Chong Yidong
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8762b8awsp.fsf@fimbulvetr.bsc.es \
--to=xscript@gmx.net \
--cc=cyd@gnu.org \
--cc=deng@randomsample.de \
--cc=emacs-devel@gnu.org \
--cc=ericludlam@gmail.com \
--cc=zappo@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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).