Cross-project merges
Lluís
xscript at gmx.net
Mon Jun 21 19:43:23 BST 2010
Hello there.
I'm in the need of prediodically merging a project (CEDET [1], which I'm
migrating to bazaar), into a subdirectory of a larger project (Emacs).
What a subversion-centric developer like me would do in this case is to declare
the CEDET subdirectory as an external dependency to a specific branch in the
CEDET repository, but my understanding is that this is not possible with bazaar.
Then, after looking through the plugin list, I've found that merge-into [2]
seems to provide the functionality of merging a repository into a subdirectory
of another one. Unfortunately, it does not work with repositories using the 2a
format [3], which is the case at hand.
After some discussion at the emacs-devel list, the proposed branch layout is:
emacs
|- trunk
|- branch1
...
`- branchN
cedet
|- trunk
|- branch1
...
|- branchM
|- emacs-trunk
|- emacs-branch1
...
`- emacs-branchN
Where CEDET's emacs-<whatever> branches are to be one-way merged into the
respective <whatever> branch in Emacs, and with the help of the 'merge-into'
plugin it seems that commit history would be nicely preserved.
The idea is to be able to gracefully handle three types of cases:
* Ignore some changesets, such that they are never merged unless manual action
is taken (e.g., for XEmacs-specific changes).
Still don't know how to do that. In subversion you could edit the
'svn:mergeinfo' property, such that it would be "blacklisted" for future
merges, without being effectively merged.
* Temporarily postpone the merge of specific changesets.
This should be accomplished by not merging specific revisions into the
respective CEDET's emacs-<whatever> branches, although I don't know how to
selectively merge changesets among branches of the same project.
* Periodic merge of proofread changes from CEDET's emacs-<whatever> into
Emacs' <whathever> branches.
Here's where I think the 'merge-into' plugin would be helpful.
Questions are then:
* Would you recommend this or other strategies?
* In case it would help the stated needs, is anybody with the necessary
knowledge willing to fix the plugin to work with the 2a format? I tried to
hack a fix for it, but I couldn't find a quick workaround for the second
line using the unexisting '_byid' attribute.
Thanks a lot!
Lluis
Footnotes:
[1] http://cedet.sf.net
[2] http://doc.bazaar.canonical.com/plugins/en/merge-into-plugin.html
[3] https://bugs.launchpad.net/bzr-merge-into/+bug/486245
--
"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
More information about the bazaar
mailing list