Bazaar with central repo : how to solve "merging hell"?
Hi guys,
in my previous job we used to use svn extensively and I am taking advantage of a "professional break" to try to famliarise myself with DCVS tools and contonuous integration environments.
I decided to give a try to Bazaar as it seems prety nice and hype, but after smooth first steps, it is all going pershape, so there must be something I am doing wrong.
I did set up an Ubuntu (10.10) server with Bazaar and CruiseControl.
Having a central repo felt natural to me (cause of my history) and it is necessary anyway for CruiseControl or any CI tool, as tehy need to be able to pull the last sources from somewhere.
I the workflow I had in mind (and tried to simulate), the 3 developpers (Liz, Bob and Paul) work with a local repository on their desktop and therefore local branch, commit locally till they are happy with their code, then push to the central repo, as it is all XP and CI, they need to push their at least at the end of each day.
So it is 5:45pm, the developers have to push their code.
THEY ALL WORK ON DIFFERENT PARTS OF THE PROJECT WITH NO "REAL" CONFLICT.
Liz shoots first, and everything is fine, she is off to the pub!
A few second later, Bob pushes his changes, but he is told that his local copy has diverged, and the same happens to Paul.
Both Paul & Bob merge their own local branch with the central branch (when they'd really want to shoot out to the pub).
Paul commits locally and pushes his changes and they go through.
Bob (fair to say that he is a bit slower) does the same, but when Bob commits and pushes his changes, his local branch still diverges (because of Paul's commit). Bob has to merge again.
So not only Paul and Bob will be late for the beer, but the revision tree will appear all clutered with uncessary merges and paralle branches.
It appears as well that this will be slightly confusing for the continuous integration tool as Paul weill appear to have modified his own source files, but as well Liz's modified files and it will be even worse for Bob who is likley to appear as a cullprit for Liz's, Paul's and his own changes.
So this is just for 3 developpers, but I cannot even imagine the headache in a bigger team (some will not have a beer at all and will even miss diner!).
There must be something I got wrong in my workflow or set up.
Maybe there is way to do a "loose push" ala svn commit where conflist are only checked for modified files (though it is not documented and does not seem to be in the philosophy of Bazaar)?
I liked some of the features of Bazaar (local commit, ability to do a local branch) and the merge (UI tool) is much better than SVN's, but if this "merge hell" cannot be overcome, the price seems to high to pay as soon as you are a ream of more than... one(?).
Anyway, I am fairly confident there is something flawed in my workflow or something I missed.
Thanks in advance for your help.
--
Jean-Michel
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- Bazaar Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask jean-michel for more information if necessary.