lp://staging/~rom1-chal/bzr-builder/merge-all-what-can-be
As a release manager, I use bzr-builder from a cron robot that merges all the candidate branches for a defined release. I can have many branches to be integrated in a target branch from many developers and the nightly build helps me in reducing the integration phase by sending to concerned developers the conflicts as soon as detected.
The builder stops at the first encountered conflict so it can prevent from getting the potential impacts between the candidate branches, abolve all if the developer is not present to correct it.
So i hacked the builder to have the --merge-what-can-be option :
If a conflict is raised during a merge, with such an option set, it reports the conflict, reverts the changes and goes on with the other instructions.
I also modified the reporting to have a nicely rendered ReST reporting used to add to an email (after a docutils transformation to html) or save in a directory.
To be fixed :
- The code does not include unit tests. I have used manually done tests to improve it...
- Only the text conflicts have been tested in conflicts raised.
- Did not implement the nest part conflicts
- Did not implement a report on command instruction.
Today, i use this beta code on one production project.
The generated report is :
------------
Build report
------------
Build of branch mel:melanie_
+------
| Status | Branch | Revno | Message |
+======
| OK | mel:melanie_
+------
| OK | mel:melanie_
+------
| NOK | mel:melanie_
+------
| | ``toto`` (modifications from rchalumeau@echo.fr, toto@tutu.com) |
+------
| OK | mel:melanie_
+------
| OK | mel:melanie_
+------
- Get this branch:
- bzr branch lp://staging/~rom1-chal/bzr-builder/merge-all-what-can-be
Branch merges
Branch information
Recent revisions
- 107. By Romain Chalumeau
-
* Report ing in a different module
* report argument added to RecipeBranch
* ReST formatted report - 106. By Romain Chalumeau
-
* Implementation of merge-what-can-be to merge as many branches from the recipe as possible. When a conflict is raised, it reports it and revert the merge to continue on the next recipe order.
* Actions reported in a global dict to generate a ReST report
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp://staging/bzr-builder