問題タブ [undo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
22 に答える
36625 参照

design-patterns - UndoEngineのデザインパターン

土木工学アプリケーション用の構造モデリングツールを書いています。建物全体を表す1つの巨大なモデルクラスがあります。これには、カスタムクラスでもあるノード、ライン要素、荷重などのコレクションが含まれます。

モデルに変更を加えるたびにディープコピーを保存するUNDOエンジンをすでにコーディングしました。今、私は別の方法でコーディングできたかどうかを考え始めました。ディープコピーを保存する代わりに、対応する逆修飾子を使用して各修飾子アクションのリストを保存することもできます。現在のモデルに逆修飾子を適用して元に戻したり、修飾子を適用してやり直したりできるようにします。

オブジェクトのプロパティなどを変更する単純なコマンドをどのように実行するか想像できますが、複雑なコマンドはどうでしょうか。モデルに新しいノードオブジェクトを挿入し、新しいノードへの参照を保持するいくつかのラインオブジェクトを追加するようなものです。

それをどのように実装するのでしょうか?

0 投票する
4 に答える
3237 参照

python - GTK TextView で元に戻す

私が貢献するプログラムの依存関係を最小限に抑えようとしています。これは小さなテキストエディターです。

GTK Textview には、元に戻す機能が組み込まれていないようです。これまで見逃していた参照実装はありますか? 誰もが TextView ウィジェット用に独自の取り消し機能を作成していますか?

どんなサンプル コードにも満足しています。私たちのプロジェクトは Python で行われているので、Python のサンプル コードに最も満足しています。

0 投票する
3 に答える
16722 参照

svn - Subversion で特定のリビジョンを元に戻す

リポジトリフォルダーに一連のコミットがあるとします...

リビジョン 117 以降のすべての変更を含み、リビジョン 118 および 120 の変更を含まない作業コピーを取得したいと考えています。

編集: おそらく問題をより明確にするために、118 と 120 で行われた変更を元に戻し、他のすべての変更を保持したいと考えています。このフォルダーには、数百のサブフォルダーに数千のファイルが含まれています。

これを達成するための最良の方法は何ですか?

ブルーノとバートのおかげで、答えはコマンドです(この場合、完全なマージが実行された後に 120 を削除するため)

リビジョン番号は先頭にマイナスを付けて指定する必要があることに注意してください。「120」ではなく「-120」

0 投票する
19 に答える
1430284 参照

git - gitリベースを元に戻す

gitリベースを簡単に元に戻す方法を知っている人はいますか?

頭に浮かぶ唯一の方法は、手動でそれを行うことです。

  • git checkoutは、両方のブランチの親をコミットします
  • 次に、そこから一時ブランチを作成します
  • チェリーピックすべてのコミットを手作業で
  • リベースしたブランチを手動で作成したブランチに置き換えます

私の現在の状況では、両方のブランチからのコミットを簡単に見つけることができるので、これはうまくいくでしょう(1つは私のもので、もう1つは私の同僚のものでした)。

しかし、私のアプローチは、最適ではなく、エラーが発生しやすいと思います(たとえば、自分のブランチを2つ使用してリベースしたとしましょう)。

何か案は?

明確化:私は、コミットの束が再生されたリベースについて話している。1つだけではありません。

0 投票する
4 に答える
1350 参照

c# - ASP.net Web アプリの取り消しのサポート

いくつかのフィールドとグリッドビューを持つ単純な Web フォームがあります。保存とキャンセルボタンもあります。

ユーザーがキャンセルを押したときに、フォーム上のデータに対して行われたことを元に戻す方法が必要です。これはフィールドで十分に簡単ですが、グリッドビューへの変更はデータベースに対してリアルタイムで発生するため、元に戻す機能を取得する方法がわかりません。

gridview への変更をビューステートに保存することを考えましたが、余分なスペースが必要なため、保存したくありません。

また、変更を保存し、必要に応じてロールバックする一時テーブルについても考えました。

フォームから元に戻す機能を取得する方法を知っている人はいますか?

0 投票する
5 に答える
1426 参照

ruby-on-rails - Railsでgmailスタイルの「元に戻す」を実装する最良の方法は何ですか?

「よろしいですか? 」という迷惑なポップアップを表示するのではなく、レコードを破棄するときに「元に戻す」メソッドをgmailで使用することが重要だと思います。

これを実装した方法は、モデルに「deleted_at」タイムスタンプ列を作成し、destroyメソッドが呼び出されたときにタイムスタンプを取得することです。

元に戻す/元に戻すには、同じ列を nil に設定します

find メソッドを呼び出すときに、「削除された」foo を除外する条件を追加するだけです。おそらく、しばらくしてから「削除された」fooを実際に破棄するようにcronまたはバックグラウンドタスクを設定します。

私にとっては機能し、実装も簡単ですが、この機能を実装するためのより良い方法があるかどうか知りたいですか? たぶん、私が知らないこれを提供するプラグインまたは宝石がありますか?

0 投票する
3 に答える
55373 参照

svn - TortoiseSVNでコミットを元に戻す

誤って大量のファイル(さまざまなフォルダーにある数十のファイル)をコミットしました。作業ディレクトリからファイルを削除せずにコミットを「元に戻す」ための最も簡単でクリーンな(そして最も安全な!)方法は何ですか?

0 投票する
2 に答える
2216 参照

c# - .NET RichTextBox 元に戻す

WinForms 3.5 で RichTextBox を使用していますが、含まれているテキストをプログラムで編集すると、それらの変更が組み込みの元に戻す機能で利用できなくなることがわかりました。

これらの変更を元に戻す/やり直すことができるようにする方法はありますか?

0 投票する
4 に答える
3065 参照

java - Java の元に戻す機能について助けが必要です

Java でテキスト エディターを作成し、元に戻す機能を追加したい

UndoManager Class がなければ、Stack や LinkedList のようなデータ構造を使用する必要がありますが、Java の Stack クラスは Object パラメータを使用します。ありがとう

0 投票する
3 に答える
39578 参照

vba - 元に戻すを Excel VBA マクロに組み込む

Excel マクロでは、実行後に「元に戻す」を使用できないようです。undoExcel で機能を VBA マクロに焼き付ける方法はありますか?