> Well maybe my comments about the selective-undo algorithm were
appropriate...
> You can treat all
> changes as inserts or deletes applied to a particular version of a file in
a
> particular order. Given any sequence of changes to a file you can
transpose
> operations and apply inverses to eliminate the changes you don't want but
> preserve the integrity of the changes you do want.
Actually, the idea wasn't original to Prakash and Knister.
Unfortunately the method only works if the data set is designed such that changes never generate merge conflicts. In systems where this sort of undo/redo is used, the data structures are designed such that human intervention is never necessary.
Code changes generate conflicts that must be resolved. Therefore, such strategies don't work very well in practice.
But even stipulating that we can undo/redo our way out, there remain two questions:
I think that we should set this aside for now. It is a very complex problem, and one where the CM system does not have enough control over the conflict resolution process to ensure that the merge is not contaminated by other, opportunistic changes.
shap