> When I do merge I get a list of changes
Yes, you are displayed a list of all the changes - added, removed, or
modified methods and classes.
The line highlighted in bold face mark conflicts. A conflict occurs if
the same method was modified both in the image and in the version you
are merging.
> Then I do not understand the keep and reject buttons.
"Keep" means to keep the changes, that is the new definition will be
used, the one in your image will be modified. "Reject" rejects the
change, the version that was in your image will be kept.
> If I select an item and press reject nothing happens, should the
selected item be underlined, crossed?
You can only reject conflicts, the ones that are highlighted in bold.
It's a bit misleading that the buttons are always shown, even if there
is nothing for you to do. I actually changed that when merging a
configuration - the Merge dialog is only shown if there actually was a
conflict.
> How do I know the ones that I reject or keep?
Use your brain :-)
Really, that's why Monticello lets you as a programmer decide - it
*cannot* decide on its own whether to use the version that was
modified in the image, or the one from the branch you are merging in.
Sometimes it is necessary to first "keep" the change, and then after
the merging, fix the methods in the regular browser. This happens, for
example, when both versions each added a line to a method. Neither of
the methods would be correct, so you would have to add the one line
from the previous version back into the newer version.
We could use a bit more tool support for that - it would be nice if
one could fix the method right in the merge tool. But in practice the
conflicts requiring manual fixing are not that common.
- Bert -