[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: On the subject of Git, Bazaar, and the future of Emacs development
From: |
David Engster |
Subject: |
Re: On the subject of Git, Bazaar, and the future of Emacs development |
Date: |
Thu, 28 Mar 2013 10:07:29 +0100 |
User-agent: |
Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3 (gnu/linux) |
Stephen J. Turnbull writes:
> Multi-person, multi-branch workflows admit a nastier kind of geometry,
> which the Bazaar developers call "criss-cross merges" for an obvious
> reason:
Yes, I get 'criss-cross merge' warnings all the time.
To hopefully make clear what a "cross-project merge" implies, here's my
current setup for the CEDET merge:
/--to-emacs <-| --------------------->
/ ^ | diff|patch
| | |
| | |
CEDET ----trunk| <-| Emacs trunk
| |
| |
\ | diff|patch
\--from-emacs -| <--------------------
CEDET->Emacs: This is actually fairly easy. The 'to-emacs' branch is a
subset of Emacs trunk, containing only the files from CEDET upstream,
but generated from CEDET 'trunk'. This also handily tracks necessary
renames (for instance, EIEIO is located under lisp/emacs-lisp in Emacs,
but in CEDET it is in lisp/eieio). So in theory, I can just merge
'trunk' into 'to-emacs', generate a diff from this merge, and apply it
to Emacs trunk. In practice however, I get a conflict for every file
that was changed in 'trunk' but does not exist in 'to-emacs' (and there
are many such files). Unfortunately, bzr cannot automatically deal with
this (is git able to do that?). But it's a minor issue, since I can
easily script doing 'bzr --take-this resolve' on those files.
Emacs->CEDET: Now that's tedious. You have to first generate a list of
commits in Emacs trunk which changed files from CEDET. Then you try to
cherry-pick those commits into the 'from-emacs' branch. Doing this by
hand is a nightmare, so I've written a package for this
(cedet-emacs-merge.el in CEDET trunk). It generates this list, display
them nicely, lets me test the patches, show conflicts, generates commit
messages, and so on. Most importantly, it keeps track of things I have
applied or ignored and saves this state in the repository as a file
which I can load later.
When I've cherry-picked all the commits to 'from-emacs'. I also have to
merge it into 'to-emacs' before merging 'trunk', as I don't want things
in my diff for CEDET->Emacs which originated from Emacs in the first
place. I guess this is where the criss-crossing comes from.
Yep, it's messy. But I'm used to it now. The most time consuming thing
is fixing ChangeLogs (we don't have any in CEDET and generate them from
commit logs).
-David
- Re: On the subject of Git, Bazaar, and the future of Emacs development, (continued)
- Re: On the subject of Git, Bazaar, and the future of Emacs development, David Engster, 2013/03/27
- Re: On the subject of Git, Bazaar, and the future of Emacs development, Ted Zlatanov, 2013/03/27
- Re: On the subject of Git, Bazaar, and the future of Emacs development, Julien Danjou, 2013/03/27
- Re: On the subject of Git, Bazaar, and the future of Emacs development, Stefan Monnier, 2013/03/27
- Re: On the subject of Git, Bazaar, and the future of Emacs development, David Engster, 2013/03/27
- Re: On the subject of Git, Bazaar, and the future of Emacs development, Stephen Leake, 2013/03/27
- Re: On the subject of Git, Bazaar, and the future of Emacs development, Stephen Leake, 2013/03/27
- Re: On the subject of Git, Bazaar, and the future of Emacs development, Stephen J. Turnbull, 2013/03/27
- Re: On the subject of Git, Bazaar, and the future of Emacs development, Stephen Leake, 2013/03/28
- Re: On the subject of Git, Bazaar, and the future of Emacs development, Andreas Schwab, 2013/03/28
- Re: On the subject of Git, Bazaar, and the future of Emacs development,
David Engster <=
- Abolishing ChangeLog files (was: On the subject of Git, Bazaar, and the future of Emacs development), Christopher Schmidt, 2013/03/28
- Re: Abolishing ChangeLog files, Thierry Volpiatto, 2013/03/28
- Re: Abolishing ChangeLog files, Richard Stallman, 2013/03/28
- Re: Abolishing ChangeLog files, Aidan Gauland, 2013/03/28
- Re: Abolishing ChangeLog files, Stefan Monnier, 2013/03/28
- Re: Abolishing ChangeLog files, Richard Stallman, 2013/03/28
- Re: Abolishing ChangeLog files, Paul Eggert, 2013/03/29
- Re: Abolishing ChangeLog files, Stefan Monnier, 2013/03/29
- Re: Abolishing ChangeLog files, Steve Youngs, 2013/03/28
- Re: Abolishing ChangeLog files, Richard Stallman, 2013/03/28