The Merge Browser is for interating different forks of a project. If two developers are pursuing parallel lines of development, they can use the Monticello merge browser to move code back and forth between them.
Monticello 2.0 and later uses a different merge algorithm than Monticello 1.x and most other versioning systems. It tracks version history for each element individually, rather than as part of a package. This leads to greater flexibility when merging and more accurate detection of conflicts.
The Merge Browser has four panes. The pane on the upper left shows a list of elements. These are the elements where the verison in the snapshot is different from the version in the image. Selecting an element will cause that element to be displayed in the other three panes.
The pane on the lower left shows the version of the element that is currently
present in the image. If it is not present in the image, the pane will
display "-- null --". This is called the
The pane on the upper right shows the version of the element that is in the
snapshot being included. Again, if there is no version of that element in
the snapshot, "-- null --" will be displayed. This is called the
Often Monticello can decide which version should be used based on the ancestry
of the two versions. If not, this is called a
conflict and elements with
conflicts are displayed in bold. Whether done automatically by Monticello or
manually by the developer, the version selected for use in the image is called
The pane on the lower right displays the resolution of the selected element. The arrangment of the panes allows easy visual comparison of the resolution with both the local version to the left and the remote version above. The unlike the local version and the remote version, the resolution is editable. This means that the resolution can be different from both the local version and the remote version - a new version that combines and supercedes both of its parents.
Once a resolution has been selected, it can be
applied to the image.
Normally all the conflicts are first resolved, and then all the resolutions
are they applied. But it's also possible to
cherry pick just a few
elements to apply.
See also the Merge Commands