[Seaside] monticello remote repositories

Julian Fitzell seaside@lists.squeakfoundation.org
Sun, 29 Dec 2002 20:11:48 -0800


Andreas Raab wrote:
> 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

Aha!

I totally agree that a "now" solution is better than waiting for a 
"later, better" solution.  What I was trying to figure out was how the 
particular diff you were referring to was helpful.  I tried creating the 
methods I was talking about below (the 3 versions of #foo) and looked at 
the diffs and I think I see what you mean.  You end up with your version 
of the code crossed out and the server's version in red - so you could 
compare the two side-by-side and (assuming you know the purpose of both 
changes and roughly what the original state was) you can come up with a 
new version that combines the two (or drops one, as appropriate).

So, yeah... it's a bit hackish but I can how it could be a useful 
short-term solution.

> 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
> 
> _______________________________________________
> Seaside mailing list
> Seaside@lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/seaside


-- 
julian@beta4.com
Beta4 Productions (http://www.beta4.com)