Subversionの導入(Windows)
バージョン管理システムSubversionを使ってみます。 まずは、Windows PC上でのローカル管理をします。(つまり、ネットワーク共有などはやりません)

Subversionの総本山はhttp://subversion.apache.org/ で、こちらで「Subversion」ソフトウェアを入手できますが、 ローカル管理だけをするならば、Subversionではなく、そのGUIフロントエンドである、 TortoiseSVNだけを入手すればOKです。 そこで、TortoiseSVNをインストールします。

  1. 上記のサイトで、TortoiseSVN本体 Ver.1.8.* (TortoiseSVN-1.8.*.*-svn-1.8.*.msi) とLanguagePack(日本語) (LanguagePack-1.8.*.*-win32-ja.exe)をダウンロードします。
  2. 本体、LanguagePackの順にエクスプローラ等でインストーラを起動して、インストールします。
  3. インストールが完了すると、 Windowsのエクスプローラ右クリックでSubversionの操作ができるようになりますが、まだ英語です。 そこで、右クリック⇒ TortoiseSVN ⇒ Settings... で、LanguageをEnglishから日本語に変更します。 (以前のバージョンでは、フォントをMS Pゴシックなどに変更する必要もありました)
  4. ローカルPCのどこかに、リポジトリを作ります。 ここでは C:\usr\svnroot に作ることにし、このディレクトリを作ります。 エクスプローラでそのディレクトリの中に入って右クリック⇒TortoiseSVN⇒ここにリポジトリを作成を選びます。 (以前のバージョンでは、ファイルシステムのタイプ"FSFS"などをここで選ぶ必要がありました) そのディレクトリの中に、conf,dav,db,hooks,locksの5つのディレクトリと、format、README.txt という2つのファイルが作られればOKです。 Subversion上でこのリポジトリを参照する際のURLは、file:///で始まります。 例えばこのディレクトリの場合は、URLはfile:///c:/usr/svnroot となります。
  5. 既存のディレクトリをインポートして作業を開始する手順は、CVSと同じです。
    1. 既存のディレクトリを選んで、右クリック⇒TortoiseSVN⇒インポートを実行
    2. ローカル上にある既存のディレクトリを、一旦消してしまう。
    3. 新しく作業コピーの場所となるディレクトリを作成する。 (通常、1.の名前と同じ名前のディレクトリを再作成することになる)
    4. 右クリック⇒SVNチェックアウトで、作業コピーをチェックアウトする
    これは一瞬であっても目で見える状態での文書を消してしまうので、コワいという場合は、
    1. 対象のディレクトリを別名に変更する。
    2. 1.の元の名前の(空の)ディレクトリを新しく作る。
    3. 空のディレクトリを右クリック⇒TortoiseSVN⇒インポートする。
    4. その位置に、右クリック⇒SVNチェックアウトでチェックアウトする
    5. 1.で退避していた内容物を4.の作業コピー上に復旧し、追加してコミットする
    または、
    1. 対象のディレクトリを別名に変更する。
    2. 1.の元の名前の(空の)ディレクトリを新しく作る。
    3. TortoiseSVNリポジトリブラウザを開き、リポジトリ内に1.と同名のディレクトリを作る。
    4. 3.のディレクトリを2.の位置に、右クリック⇒SVNチェックアウトでチェックアウトする
    5. 1.で退避していた内容物を4.の作業コピー上に復旧し、追加してコミットする
    のいずれかの方法をとります。 以後バージョン管理の手順に入ることが出来ます。


TortoiseSVNのバージョンアップ
TortoiseSVNを使っていると、時々「新しいバージョンができたよ!アップグレードしてチョ」 という意味の英語のメッセージが出ることがあります。 この場合、既存のプログラムをアンインストールする必要はなく、 新しいTortoiseSVNとLanguagePackをダウンロードして、 既存と同じ位置にインストールすればOKです。


リポジトリのバックアップ
TortoiseSVNのUIからは、リポジトリのバックアップはできません。
この機能はSubversionのバイナリ配布のsvnadmin.exeを使います。
バイナリ配布はこちらから入手できます。 これで、svnadminのdumpまたはhotcopyコマンドを使って、リポジトリのバックアップができます。

C:\Wintools\subversion\bin\svnadmin dump .\docs > svn_backup_docs.dmp
C:\Wintools\subversion\bin\svnadmin hotcopy .\docs \backup\docs --clean-logs

なお、このときにコンソール(コマンドプロンプト)に表示される日本語が文字化けする場合には、 環境変数APR_ICONV_PATHを設定します。

set APR_ICONV_PATH=C:\Wintools\subversion\iconv


作業コピーのバージョン管理をやめたい!.svnフォルダを消して綺麗にするには?
対象の作業コピーフォルダを右クリック⇒「エクスポート」で別のフォルダにエクスポートすればOK。 このとき選んだフォルダの中に、作業コピーフォルダから.svnだけを除いたコピーが作られます。 (つまり、C:\usr\workcopy を C:\usr2\export にエクスポートすると、 C:\usr2\export\workcopy というフォルダが作られるという事) 「バージョン管理外のファイルも参照する」にチェックを入れると、 作業コピー内にSubversionで管理していないファイルが含まれていても、 それらも含めてコピーしてくれます。


リポジトリの復旧
dumpファイルからの復旧は、svnadmin loadコマンドでおこないます。

C:\Wintools\subversion\bin\svnadmin dump C:\usr3\docs < svn_backup_docs.dmp

この復旧先(ここではC:\usr3\docs)は存在し、既にリポジトリとして初期化されている必要があります。 つまり、エクスプローラ等で空のフォルダ C:\usr3\docs を作った後、 そのフォルダに対して右クリックメニュー「TortoiseSVN」⇒「ここにリポジトリを作成」 で、リポジトリを作っておいてから上のコマンドを実行します。

Misc. Topics Top

(first uploaded 2005/05/21 last updated 2014/03/15, URANO398)