■ Top ■ CoC ■ Tips ■ Tools ■ Links

trac/svnのリポジトリをコミットする前の状態へ戻す
シェア
Description
コミットしてはいけないファイルをsvnへコミットしてしまった場合、
Revertしても一度コミットした履歴は消えないので、ファイルの復元が可能です。
ファイルを復元させないために、コミットする前の状態に戻すには、
svnサーバ側のデータベースを、コミットする前に戻す必要があります。
また、tracのリヴィジョン同期が必要です。
trac0.12/svn1.6での作業方法を紹介します。

Solution
(例)リヴィジョン100に戻す場合
  1. svnのデータベースからロールバックしたい
    リヴィジョンまでのデータをdumpする(r100を作成)
    $ svnadmin dump [svn_path] -r 0:100 > r100

  2. dumpしたデータベースをloadするリポジトリ(temp)を作成する
    $ svnadmin create temp

  3. 作成したリポジトリ(temp)にr100をloadする
    $ svnadmin load temp < r100

  4. 現在のデータベースをリネームする
    $ mv [svn_path] bak

  5. loadしたデータベースを元のデータベース名へリネームする
    (目的のリヴィジョンへ置き換える)
    $ mv temp [svn_path]

  6. trac側の管理のリヴィジョンを再同期する
    (リポジトリに名前を付けている場合(default)で指定)
    $ trac-admin [trac_path] repository resync "(default)"


【楽天で購入】
Client
クライアント側は、サーバのリポジトリのリヴィジョンが古くなったことにより、
そのままでは不整合が発生します。一度クライアント側のリポジトリを削除して、
再度、チェックアウトしたほうが無難です。