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

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

ひとつのリビジョンやリビジョンの範囲から、変更を取り消す簡単な方法は、リビジョンログダイアログを使用することです。最近の変更を破棄して以前のリビジョンを新しい 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 にあります。(訳注: 日本語訳は Subversion によるバージョン管理 にあります)