[Seaside] monticello remote repositories

Andreas Raab seaside@lists.squeakfoundation.org
Mon, 30 Dec 2002 04:05:18 +0100


Julien,

> I'm not convinced though, that you couldn't to 3-way merge
> at a finer granularity than line-by-line. 

Oh, I'm not saying you couldn't. I'm saying you may not necessarily have
to ;-)

> I still don't quite see how a diff between my modified 
> version and the version on the server is helpful, though.

Try it. That's really all I can say. I'm going from experience and my
experience just tells me that all other things being equal I would
_much_ rather see that diff right away than a fully fledged
three-way-diff some months down the road ;-) This was why I was raising
this point to begin with. When people start using Monticello (and it
looks like it's going to happen) then this is likely to be one of the
more problematic issues. And I _think_ that even something as dog-simple
as showing that diff can get you a very long way.

Again, that's just from experience on my part. You don't have to take it
by face value and if you want to do the three way diff/merge then, by
all means, go for it! The point here is that if you want to have a "good
enough" solution without much work on your part it's probably worthwhile
to just throw in a few lines of code along the lines of:

	"a random selection of 'conflicts'"
	conflicts := Smalltalk 
		allSelect:[:cm| cm primitive between: 100 and: 200].

	msgSet := MessageSet 
		openMessageList: conflicts
		name: 'conflicting methods' 
		autoSelect: nil.

	msgSet showRegularDiffs: true.

and see if that helps. At its worst, it will be useless and then you've
wasted a few lines of code to try it. At its best you will find yourself
wanting to do other things than writing the three way diff/merge stuff
;-)

Cheers,
  - Andreas