Squeak SmalltalkJoker Squeak Smalltalk : Tools Tricks Usage : prevnext Monticello Merge

I won't answer the other two points as Avi or Colin would be better
able to do so, but I can answer this one.  When you merge a version
into your working copy, you are incorporating the changes between that
version and
  your closest common ancestor.  You then add that version as an
ancestor of your working copy.
But your working copy is still modified relative to its primary
ancestor.
So if I load A, and then merge in B (which was descended from A), my
working copy is W and contains (relative to A) a bunch of changes from
B
  and whatever other changes I may have made.  If I was to do a diff
between A (my primary ancestor) and myself, I would see changes, and
therefore my working copy is modified.
If you actually want your working copy to be identical to B, you
should use Load instead of Merge.  I have suggested to Avi that having
a button that loads when your working copy is previously unmodified
and merges when it's modified would be a good idea to reduce the need
for users to know the differences.  But before we can do this we need
a more reliable system of noticing when changes are made to the
package (we can't catch class changes at the moment, for example).
Julian