web-dev-qa-db-ja.com

アンドゥスタックの保存と復元-良いですか悪いですか?

マルチレベルの取り消し/やり直し(つまり、Photoshop、Wordなど)を備えた主権的なデスクトップアプリでは、ファイル自体を含むファイルの取り消し履歴を保存および復元できるのは良いことですか、悪いことですか?私の最初の反応は「良い」ですが、以前のバージョンに戻すために動作を停止するまでControl + Zを時々押し続けることがわかりました。これに関する研究や経験はありますか?

12
Robert Fraser

そのようなアプリケーションの1つの例は IntelliJ IDEA (およびその他のプログラミング環境)です。通常のプロジェクト固有の外部 リビジョンコントロール に加えて、IDEAにはユーザー固有の ローカル履歴 があり、すべてのファイルのリビジョンを保存します保存するたびに(履歴はユーザーのホームディレクトリ内に保存されます。)古いリビジョンはデフォルトで3営業日保存され、その後古いリビジョンは削除されます。すべてのファイルを数秒ごとに自動的に保存する機能(myプリファレンスは5秒間アイドル状態になった後です)、つまり、ファイルの保存について考える必要がなくなり、いつでも古いデータを取り戻すことができます。プログラミング時には、これが本当の命の恩人です。ローカル履歴にはすべての変更の日付と時刻が表示されるため、プロジェクトに何時間も費やして、自分の作業時間を記録しました。)

外部のリビジョン管理はまだ必要ですが、他のニーズのために-通常、少なくとも1〜2時間に1回、一貫した作業が完了したときに変更をコミットします。これは、変更を他のチームに配布する方法でもあります。メンバーとバックアップを作成します。一方、ローカルヒストリは、発生後数秒または数分の事故から回復するためのものです。

他の多くのプログラムも同様の地元の歴史から恩恵を受けると思います。元に戻す/やり直しスタックと手動でのファイルの保存は失われたデータを回復するための非常に原始的な方法であるため、Officeスイートに必要な場合は私はそれを気に入っています(これらは選択的な回復を許可せず、プログラムの再起動後も存続しません)。私はまた、画像編集アプリケーション(名前は覚えていません-Mac専用だと思います)を見て、すべての編集が元の画像の変換として行われたことを覚えています。いつでも戻って、以前の編集。そのため、画像編集を行っても、そのような履歴が可能です。

履歴を編集中のファイル内に保存したいとは思わない-そうしないと、履歴が非常に大きくなります(数秒ごとの改訂。1年以内に取り組んだプログラミングプロジェクトのローカル履歴は370です) MB)そして、それはあなたがあなたが削除したと思ったデータをリークすることによってセキュリティ問題を引き起こす可能性があります-しかし、ユーザーごとの履歴は素晴らしいでしょう。

7
Esko Luontola

たまに、photoshopやWordにそのような機能があったらいいのにと思っています。

別の問題はパフォーマンスです。数週間にわたって配布され、編集されている下書きのWord文書を考えてください。でかい!読み込みに時間がかかります。

さらに別の問題はプライバシーです。 Photoshopで写真をペイントするために行った手順や、以前のボードへの提案がどのようなものであるかを人々に見てほしくない。

結論として、それはいいことだと思いますが、パフォーマンスとプライバシーのために履歴を消去する方法が必要です。また、おそらくctrl-zを押した場合は、ドキュメントがその状態になったときに停止する必要があります。最後に開かれ、続行するかどうかを尋ねます。

7
Sruly

やり直しややり直しはしたくないようですが、ファイルのバージョン管理、または リビジョンコントロール が必要です。 (Photoshopについては知りませんが、Wordにはこの機能があり、デフォルトでは無効になっています)。

7
peeles

おそらく、デフォルトで5分のundoのタイムアウトです(編集可能なタイムアウトの長さである場合とそうでない場合があります)。これは、数日/数週間/数カ月後のデータの取り消しの価値に関して人々がここに持っている非常に有効な懸念に対処します。また、アプリケーションを誤って閉じて元に戻すデータが失われるという問題を解決します。また、Ctrl + Zを押したままにして、「セッション」中のすべての変更をクリアするという価値を維持します(「セッション」とは、一度に5分未満の非アクティブな使用を意味します)

2
Chris Ledwith

小さいプロジェクトから大きいプロジェクトまで、私はこれが大好きです。

Google Chrome誤って閉じたタブを復元すると、完全なバック履歴が表示されます-それ自体が素晴らしいです。

一部の生産性の高いアプリケーションは、アクションのスタックからアーティファクトを構築します。たとえば、エンドレススタックで操作を適用し、以前の操作に移動して変更を加え、その変更をスタックから現在のモディファイアに反映させることができます。ファイル形式は、最終結果ではなく、アクションのフローに基づいています。

ただし、アーティファクトの最終バージョンまたは公開バージョンを「公開」することが明らかでないアプリケーションには、多くのリスクが伴います。たとえば、受信者の気分を害する変更履歴の完全なWord文書を送信した場合(クライアント名を別のクライアントから変更したオファーなど)のように。

1
Oskar Duveborn

個人的には悪いと思います。これにはバージョン管理システムが適しています。ユーザーが取り消しがこのように機能することを期待しているとは思いません。彼らが数日前に取り消しスタックに何があったかをどのように思い出すことができるのかわかりません。そして潜在的に、これはアプリの多くのディスク容量とメモリを消費する可能性があります。つまり、ユーザーは基本的にデータを削除することはありません。ユーザーが不足しているためにハードディスクの領域を解放したい場合の使用例をどのように扱いますか?

1
Erik Engheim

私の考えでは、これはこの仕事には不適切なツールです。元に戻すとやり直しはこのプロセス内のアクションに関するものなので、保存して次に進む前にアクションを元に戻す/やり直すことができます。セッション全体での保存は別の要件のように思えますが、バージョン管理のほうがスタイルです。ファイル/アプリケーションの保存されたバージョンでREDOスタックを保持する場所があることがわかります。つまり、バージョンを開いて直前のアクションをすぐに取り消すことができますが、さらにアクションを開始すると、これが失われます-スタック再起動されます。

私はそれが有用であることがわかります-私はそれが好きなことを時々見ることができます-しかし、それでもこの機能の正しい使い方ではないと思います。

0