質問: TortoiseSVNで間違ってコミットしてしまった大量のディレクトリおよびファイルをロールバックしコミットする方法について質問です。 右クリックでこのリビジョンにおける変更を取り消す→作業コピーが戻る→コミット でロールバックできるのは知っているのですが、これだと1つ1つ戻す、コミットするのが 大変なので、いっぺんにやる方法はないでしょうか? 逆マージを使う方法があるようですがマニュアルを読んでもよくわかりません。 trunk全体を間違えてコミットしてしまったら、ローカルのtrunkを右クリック→マージ →逆マージにチェック→実行でtrunkの作業コピーが全部ロールバックできるのですか? その場合、trunkをコミットするときの画面(ダイアログ?)はどうなるのでしょうか? 「逆マージ」とまとめて1行で出てくれますか? 関係ないファイルは出てこないですか? 一番は間違いを起こさないことですが、知っておきたいので教えてください。
回答: リバースマージはロールバックでは無いことを最初に指摘しておきます。リバースマージの履歴はちゃんと残ります。それは「打ち消しのコミット」です。本当にロールバックするにはsvnadminを使う必要があります。 で、リバースマージを複数のコミットに対して一度に行うのは可能です。それは普通のマージを複数にコミットについて一度に行うのと同じです。マージ対象のコミットを選ぶ画面でシフトキーを押しながら始点コミットと終点コミットを範囲選択すればよいはずです。マージの画面でShow logボタンを押し、どのコミットをマージするのか選択してみてください。 たしか昔のTortoiseSVNは、古いコミットを始点に新しいコミットへ範囲選択すると普通のマージに、新しいコミットを始点に古いコミットを範囲選択するとリバースマージになった記憶があります。最近のバージョンを見たらReverse mergeというチェックボックスがあったので、始点終点を選ぶ順序は関係なくなったのかもしれません。お使いのTortoiseSVNの画面でReverse mergeのチェックボックスがあるか確認してみてください。