DeltaStreams moving forward

Jason Johnson jason.johnson.081 at gmail.com
Thu Sep 6 16:19:50 UTC 2007


On 9/6/07, Göran Krampe <goran at krampe.se> wrote:
>
> There are also other "distinctions" we could make. For example, will a
> revert be exactly the same as if I had manually made changes to undo the
> previous changes? Or would it be exactly like an undo - leaving no trace
> that the original changes ever happened (like for example "versions" of
> methods)?

Thinking about how the low level Deltas would be used, I would say
that reverting a delta should make the system as though it was never
there.  If higher level tools want to revert but keep the history for
some reason they only need to fetch the Delta from the "to revert to"
time and apply it again.

> And if we want both mechanisms - what will we call them? Should we use
> #revert (that does "self asReverseDelta apply" and thus adds a new Delta
> to the list of "applied Deltas") and #unapply for this "real" undo
> mechanism (that I guess would actually remove the Delta from the list of
> "applied Deltas")? Or is a real undo even considered a dangerous idea?
>
> Darcs has them both IIRC.

Darcs has a "unrecord that I made these changes but keep them in the
file" and a "revert to a previous version" operation, but I think this
is a consequence of working on files (that is, Darcs doesn't find out
about the changes until after the fact).  In Smalltalk what is in your
system should *always* be under some kind of change set, so therefor
the first option makes no sense here.



More information about the Squeak-dev mailing list