Large merges, extmerge & external merge tool

Asked by Jemsquash

I am trying to get our project migrated off clearcase and onto another RCS such as Bazaar. We are currently trying Bazaar, Git and Mercurial.

To focus on the bazaar side of things this is our approach. We have many branches in clearcase. I have in effect recreated these branches and committed them into bazaar having mirrored the branches in clearcase. We started with a baseline of our last production release and then have branched the bazaar branches to each of the clearcase branches. We have then checked them in as is. This means that we are dumping the clearcase history. Everyone is willing to accept this as the migration tools that we evaluated did not really make anything particularly easy for us.
This step so far has work reasonably well. I created some python scripts to do this step in a semi-automated way.

The next step is now to merge some of these branches into a production release. Now some of these branches were merged at previous points in clearcase. The issues we are encountering are as follows:
In the qbzr conflicts we cannot to a bulk resolve conflicts. We can only do one at a time. This is painful on a project this size.
We then tried the extmerge plugin. This solved the problem of running the merge tool for each and every conflict. The problem now is that one cannot interrupt the merge process. The merge is an all or nothing. If one runs the ext merge tool again it starts from the beginning again as we have not marked the conflicts as resolved.
The ideal would be if we could select multiple elements in the qbzr conflicts list and run the merge tool for a range of conflicts. It only allows selection for one at a time.

The next problem is that due to previous merges between branches in clearcase we have files that have appeared in multiple branches that are identical. The problem is that Bazaar sees them as file name conflicts and doesn't seem to inspect them to see if they are the same file (I at least believe that Bazaar is doing this). It would be nice to have some sort of lenient mode flag where bazaar would compare the contents of the file and if they are the same then not generate a conflict. The alternative that I see is to create a script that will look at the two files and then delete the .moved file if it is the same.

Does anyone have any thoughts on this?

Question information

Language:
English Edit question
Status:
Answered
For:
Bazaar Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Martin Pool (mbp) said :
#1

> The next step is now to merge some of these branches into a production release. Now some of these branches were merged at previous points in clearcase. The issues we are encountering are as follows:
> In the qbzr conflicts we cannot to a bulk resolve conflicts. We can only do one at a time. This is painful on a project this size.
> We then tried the extmerge plugin. This solved the problem of running the merge tool for each and every conflict. The problem now is that one cannot interrupt the merge process. The merge is an all or nothing. If one runs the ext merge tool again it starts from the beginning again as we have not marked the conflicts as resolved.
> The ideal would be if we could select multiple elements in the qbzr conflicts list and run the merge tool for a range of conflicts. It only allows selection for one at a time.

Hi,

That seems like a reasonable thing to want, and maybe not too hard to
implement. Please file a bug at <http://pad.lv/fb/qbzr>.

The other thing you can do perhaps is a script that reads `bzr
conflicts` and runs your merge tool across those.

> The next problem is that due to previous merges between branches in clearcase we have files that have appeared in multiple branches that are identical. The problem is that Bazaar sees them as file name conflicts and doesn't seem to inspect them to see if they are the same file (I at least believe that Bazaar is doing this). It would be nice to have some sort of lenient mode flag where bazaar would compare the contents of the file and if they are the same then not generate a conflict. The alternative that I see is to create a script that will look at the two files and then delete the .moved file if it is the same.

As you're just taking a snapshot import of each branch, what I would
recommend is that you do 'bzr add --ids-from' pointing to the previous
tree as you make each new branch, or indeed just branch from within
bzr. In the cases that doesn't handle, just deleting the .moved file
seems reasonable.

I think there's already a bug or two for handling that better.

--
Martin

Can you help with this problem?

Provide an answer of your own, or ask Jemsquash for more information if necessary.

To post a message you must log in.