Kettle use case: method alternatives

Matthew Fulmer tapplek at
Tue Mar 25 21:07:10 UTC 2008

Here is a use case that I think would be very useful when
porting code, especially small bug fixes, across forks. I have
wanted to add this to DeltaStreams.

You fix a bug in, and it involves changing the #foo
method from:

    ^ 1


    self ensureWhizbangInitialized.
    ^ 1

Now, you realize that this bug needs to be fixed in Croquet as
well, where foo looks like:

    ^ 2

So, you try loading the bug fix into Croquet, and, naturally, it
brings up a conflict that you must resolve, since the expected
previous method does not match the actual installed method. You
resolve it like:

    self ensureWhizbangInitialized.
    ^ 2

and forget about it, because the system has recorded this as an
alternative, and whoever fetches the bug fix in the future will
receive both versions and automatically choose the one that best
matches their fork and has the same previous method that you
had when you resolved the conflict.

I haven't really thought about how this would work if you needed
to specify alternative groups of methods, again dependent on
which fork you load code into.

Matthew Fulmer --

More information about the Spoon mailing list