履歴にデータのほう(成果)を残しても、アンドゥ/リドゥ(元に戻す/やり直し)にしか使えない。
操作を残しておけば、履歴の一部を変えてやり直せる。
言わば「過去を変える」ということ。
ペイントアプリなら過去に戻ってブラシを変えると、描いている絵が「もしもこのブラシで描いていたら…」という絵になる、というように。
そのためには…
- 操作ごとに逆の処理を用意する。
点を描く←→点を消す
文字を挿入←→(特定の位置の)文字を削除 - データと一緒に操作も記録する。
戻るときはデータを利用し、履歴をやり直すために操作記録を利用する。
…などが必要。