Frequently Asked Questions


What SCM tools does MergeMagician support?

Initially we are supporting Subversion and Team Foundation Server, and are looking closely at Perforce and ClearCase. Ultimately we plan on supporting all popular version control systems, and will have a plug-in architecture that allows third-party developers to write additional integrations.


Aren't branches more trouble than they're worth?

Some developers feel that way. This stems from the fact that up until now there haven't been a lot of good tools on the market to manage complex branching and merging scenarios. To compensate for the lack of good tools, some development teams, particularly agile-oriented teams, prefer to check all code changes into the mainline of their SCM repository. While this can work in some certain cases, there are many situations where this is approach unworkable. MergeMagician allows you to benefit from SCM branches, while retaining the best aspects of agile development, such as continuous integration.


Won't continuous merging create a lot of merge conflicts?

No. Continuous merging will reduce or eliminate merge conflicts. The longer a branch deviates from the mainline, the more likely it is that there will be merge conflicts. By merging frequently, the chance of conflict is greatly reduced. When merge conflicts do occur that require human intervention, MergeMagician has a built-in, web-based collaborative merging tool that can be used to resolve the problem.


What if I don't want my branch to receive new changes all day long?

MergeMagician provides a rich set of configuration options to handle any situation. You can merge continuously, if you want to. You can also set up scheduled merges. Lastly, you can configure MergeMagician to notify you before it begins a merge operation, and wait for your approval to begin the merge.


My SCM tool already provides merging tools, so why do I need MergeMagician?

SCM merge tools are desktop-based. A developer retrieves a target branch to their local disk, merges in the branch, resolves any conflicts, and then commits the changes up to the repository. This can be very time-consuming and distracting to a developer, who is usually not doing merges every day. MergeMagician turns this desktop-oriented activity into a server-based activity. The developer can interact with MergeMagician and help resolve conflicts, but ultimately it is MergeMagician performing the activity. Thus, the operation is less error-prone and saves the developer a lot of time and hassle.


How do I ensure the merge doesn't break the build?

There are two ways you can configure MergeMagician to test for build success. First, you can set a build script that MergeMagician will run prior to committing the merge. While not intended to be a full-blown continuous integration server in and of itself, MergeMagician contains some built-in lightweight facilities for running and checking the build. Alternatively, if you are using a continuous integration server, MergeMagician can be configured to use it. Integrations with popular CI systems are provided, and the plug-in architecture will permit other integrations to be written by third-party developers.


Can't I just do the merge from within my build script?

Maintaining an automated merging strategy from within an ordinary build script is possible, but difficult. For starters, build scripts were not designed to describe the kind of publish/subscribe relationships that are needed for an automated merging solution. With a scripting approach, each time you create or remove a branch, you will need to update your build script. MergeMagician gives you a place outside of the build script where the publish/subscribe information can be stored. Resolving conflicts are another problem with scripts. MergeMagician was designed from the outset to anticpate merge conflicts, and has an integrated, collaborative conflict resolution component. MergeMagician can automatically suspend a merge awaiting conflict resolution, and then complete the merge after the conflict is resolved. Designing this sort of logic into a build script is time consuming. Lastly, MergeMagician gives you a complete set of built-in reports for auditing purposes, providing a comprehensive solution to automated merging.