リポジトリのリビジョンのロールバック(取り消し)

リビジョンログダイアログの使用

ひとつのリビジョンやリビジョンの範囲から、変更を取り消す簡単な方法は、リビジョンログダイアログを使用することです。最近の変更を破棄して以前のリビジョンを HEAD リビジョンにするのもこの方法が使用します。

  1. 変更を取り消す必要のあるファイルやフォルダーを選択してください。すべての変更を取り消す場合は、トップレベルフォルダーを選択してください。

  2. TortoiseSVNログを表示 を選択してリビジョン一覧を表示します。参照したいリビジョンを表示させるために、必要に応じてすべて取得次の100件を使用してください。

  3. 変更を取り消したいリビジョンを選択してください。リビジョン範囲を取り消すのなら、最初のものを選択してから、Shift キーを押したまま最後のものを選択してください。複数のリビジョンを選択する際、選択状態にすき間があってはなりません。選択したリビジョンで 右クリック し、コンテキストメニューこのリビジョンにおける変更を取り消す を選択してください。

  4. もしくは、もっと古いリビジョンを HEAD リビジョンにしたい場合は、選択したリビジョンの上で 右クリック し、コンテキストメニューこのリビジョンに戻す を選択してください。これにより、選択したリビジョン以降の変更がすべて取り消されます。

変更の取り消しは作業コピーに対して行われます。結果を確認し、変更をコミットしてください。

マージダイアログの使用

広い範囲のリビジョンを取り消したい場合、マージダイアログも使用できます。前の方法は裏でマージしていましたが、この方法では、明示的に使用します。

  1. 作業コピーで TortoiseSVNマージ を選択してください。

  2. 元: フィールドに、作業コピーで取り消したい変更のあるブランチやタグの完全なフォルダーの URL を入力してください。デフォルトの URL が入力されているはずです。

  3. 元リビジョン フィールドに現在のリビジョン番号を入力してください。他の誰も変更を加えていないことが確認できている場合、 HEAD リビジョンを指定できます。

  4. "元:" URL を使用する チェックボックスにチェックが着いていることを確認してください。

  5. 先リビジョンフィールドに戻す先のリビジョン番号を入力してください。すなわち、戻す先頭のリビジョンののものです。

  6. マージを完了するには OK をクリックしてください

変更の取り消しは作業コピーに対して行われます。結果を確認し、変更をコミットしてください。

svndumpfilter の使用

TortoiseSVN は決してデータを失わないため、ロールバックしたリビジョンはまだ中間リビジョンとして存在しています。 HEAD リビジョンが以前の状態になっただけです。すべての痕跡を削除して、リポジトリから完全に見えなくする場合は、もっと極端な手段を採らねばなりません。これは本当に十分な理由がなければ、お勧めしません。考えられる理由としては、誰かが公開リポジトリに機密文書をコミットしたなどでしょう。

リポジトリからデータを削除する唯一の方法は、Subversion コマンドラインツールの svnadmin を使うことです。この実行方法の説明は、Repository Maintenance にあります。