Dan Price pointed out to me a week or two ago that merging conflicts is less convenient under Mercurial than under Teamware, because once you start merging, Mercurial wants you to finish. If you try to bail out in the middle, you get told
you can redo the full merge using: hg update -C <rev1> hg merge <rev2> But as the text says, that's redoing the *full* merge. That's not helpful, because it clobbers the files you've already merged. You can't just rerun "hg merge" because you'll get an error message about how there's already an ucommitted merge in progress. You can manually merge the remaining files, but there are a couple gotchas. First gotcha: you have to keep track of which files still need merging. Second gotcha: there's no convenient way to do a full 3-way merge. You have to manually extract the ancestor and other head for each file (e.g., using "hg cat"). I brought this up on the Mercurial list a couple days ago, but Matt doesn't see this as much of a problem. He suggested using a merge script that does a CVS-style merge on all the files that are in conflict. Then once "hg merge" has completed, look for files that have conflict markers (to handle the changes that the script couldn't do for you). I'm not wild about this approach. One minor reason is that I like having a side-by-side view like what gpyfm gives. Also, a CVS-style merge will perform some changes silently. That can be risky, since it can introduce semantic changes that are still legal from the compiler's point of view, but which might introduce bugs (e.g., change something from an array to a pointer). On the other hand, since merging with Mercurial is a two-step process, the person doing the merge can review the entire set of changes and fix things up as needed, before committing the merge. What do you all think? Would it be acceptable to go with Matt's suggestion to start, and then add better support for using graphical tools sometime in the future? mike _______________________________________________ tools-discuss mailing list tools-discuss@opensolaris.org