目次

WindowsでSubversion(TortoiseSVN)を使った際のメモを書いていきます。

参考にした本

SubversionをWindowsへインストールする

現在TortoiseSVNの最新バージョンは「1.7.1.22161」です(2011/11/29現在)

1.TortoiseSVNをインストール

本来「Subversion」はコマンドラインで使うものなのですが、それをWindowsのGUIで操作できるソフトが「TortoiseSVN」です。
この中には既に必要最低限の「Subversion」のファイルが含まれていますので、これだけ入れれば使えるようになります。

「TortoiseSVN」「Language packs(日本語化パッチ)」をダウンロードしてインストールする方法を説明していきます。

  1. このページの左上にある「Download」を押します。
  2. 出てくる以下のページで、TortoiseSVNのインストールファイルがダウンロード出来ます。
    お使いのOSが32bitか64bitかでダウンロードするファイルが変わります
    TortoiseSVN_downloads_TortoiseSVN1.jpg
  3. さらに下にスクロールすると日本語化のインストールファイルがありますので、こちらもダウンロードします。
    お使いのOSが32bitか64bitかでダウンロードするファイルが変わります
    TortoiseSVN_downloads_TortoiseSVN2.jpg
  4. TortoiseSVNのインストールファイル→日本語化のインストールファイルの順でインストールします。

※TortoiseSVN(Subversion)1.6以前から1.7にすると、オーバーレイアイコンが表示されない、右クリックしてもコミット(Commit)・更新(Update)が出来ない…
以上の症状が出るのは、TortoiseSVN(Subversion)1.7 から作業コピーの形式が変わった事が原因です
1.6以前から1.7以降のバージョンにした場合、作業コピーのアップグレードが必要になります
TortoiseSVN(Subversion)1.6以前に作られた作業コピーを1.7形式へを参照してください

2.TortoiseSVN(Subversion)1.6以前に作られた作業コピーを1.7形式へ

1.6以前から1.7以降のバージョンにした場合、作業コピーのアップグレードが必要になります
該当する方は、以下の手順で作業コピーをアップグレードして下さい。

  1. 作業コピーのルートフォルダを右クリック
  2. [SVN Upgrade working copy]又は[SVN 作業コピーをアップグレード]を選択
    TorotiseSVN1_7_Work_Upgrade_Menu_EN.png
    TorotiseSVN1_7_Work_Upgrade_Menu_JP.png
  3. 作業コピーの形式を新しい1.7形式にアップグレードして良いかどうかのダイアログが表示されるので[Upgrade the working copy to the new 1.7 format.]又は[作業コピーを新しい1.7形式にアップグレード]を選択します
    TorotiseSVN1_7_Work_Upgrade_Dialog_EN.png
    TorotiseSVN1_7_Work_Upgrade_Dialog_JP.png
  4. 進捗状況のダイアログが表示されます
    TorotiseSVN1_7_Work_Upgrade_Run_JP.png
  5. 変換が完了します
    ※この変更で「.svn」フォルダがルートフォルダのみ存在する様になります
     
     
    コマンドラインでアップグレードを行うには[svn upgrade]コマンドを使う様です
    svn upgrade (作業コピーのルートフォルダ)
    例:Dドライブにある作業コピーのフォルダ「proj」をアップグレードする場合
    svn upgrade D:\proj

詳しくは以下のWebページをご覧下さい

3.TortoiseSVNに設定する

インストールが終わったら、デスクトップを右クリック→[TortoiseSVN]→[Settings]

以下のような設定ウインドウが開きます。

Language.jpg

Languageを「日本語」に直します。
ここで日本語に選択出来ない場合は前記の「LanguagePack」がインストールされていないのでインストールして下さい。
[適用(A)]→[OK]を押して設定を一度終了します

デスクトップを右クリック→[TortoiseSVN]→[設定(S)]

以下のような設定ウインドウが開きます(さっきの設定ウインドウの日本語化したもの)

Settings.jpg

「除外/無視するパターン(P)」でSubversionで無視する拡張子を指定します。
ここで気をつけなければいけない事は、大文字・小文字を区別してしまう事です。
通常は「*.bak *.Bak *.BAK」を指定しておけば良いでしょう。

差分ビューア.jpg

差分ビューアの設定は標準では「TortoiseMerge」がセットされています。
自分は差分ビューアに「WinMerge」を使っているので、それに設定してあります

WinMerge.jpg

4.Subversion「コマンドラインクライアント」をインストール

通常使っている分には「TortoiseSVN」があればひとまず必要ないが、
Subversionをコマンドラインで使いたい場合は必要となる。
特にリポジトリのバックアップや移行をしたい時には「svnadmin hotcopy」や「svnadmin dump」コマンドを使わないといけないが、これは「コマンドラインクライアントをインストールする必要がある。

  1. 既に別なSubversion「コマンドラインクライアント」(例えばSlikSVN等)を入れているのであればアンインストールします
  2. TortoiseSVNのインストールファイルを実行します
  3. 次へボタンでインストールを進めます
  4. 以下の画面で[Modify]ボタンを押します
    TortoiseSVN_Command_Line1.jpg
  5. [Command line client tools]をクリックして[Will be installed on local hard drive]を選びます
    TortoiseSVN_Command_Line2.jpg
  6. 次へボタンでインストールを進めます
  7. インストール終了後、コマンドプロンプトで以下のコマンドを打ち込みます
    svn --version
  8. インストールしたバージョン番号(例では1.7.1)を含む以下の表示が出れば成功です
    svn, version 1.7.1 (r1186859)
       compiled Oct 22 2011, 10:53:27
    
    Copyright (C) 2011 The Apache Software Foundation.
    This software consists of contributions made by many people; see the NOTICE
    file for more information.
    Subversion is open source software, see http://subversion.apache.org/
    
    The following repository access (RA) modules are available:
    
    * ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
      - handles 'http' scheme
      - handles 'https' scheme
    * ra_svn : Module for accessing a repository using the svn network protocol.
      - with Cyrus SASL authentication
      - handles 'svn' scheme
    * ra_local : Module for accessing a repository on local disk.
      - handles 'file' scheme
    * ra_serf : Module for accessing a repository via WebDAV protocol using serf.
      - handles 'http' scheme
      - handles 'https' scheme

TortoiseSVN の使い方

最初にやる事

1.リポジトリを作成する(ここにリポジトリを作成)

まずデータが格納される場所、「リポジトリ」というフォルダを作成しないといけません。

  1. 適当な名前のフォルダを作ります。
    例として「D:\repo」というフォルダを作成しました。
  2. 「repo」フォルダを右クリック→[TortoiseSVN]→[ここにリポジトリを作成(Y)]
  3. 以下のようなウインドウが開きます。
    ※現在のバージョンではこのウインドウが表示されず、FSFS固定となります。
    Repo_create.jpg
    [Native filesystem(FSFS)]→[OK]
  4. これでリポジトリが作成されます。
    以後はこのフォルダの内容を直接いじることはありません。

2.作業コピーの作成(SVN チェックアウト)

  1. Subversionで管理したいソースコードを置くためのフォルダを作成します。
    ここでは例として「D:\proj」というフォルダを作成します。
  2. 「proj」フォルダを右クリック→[SVN チェックアウト(T)]
  3. 以下のようなウインドウが開きます
    リポジトリのURLに先ほど登録したリポジトリのフォルダを登録します。
    これはプルダウンメニューで選べるはずです。表記的には「file:///D:/repo」という感じになります
    最後に[OK]ボタンを押します。
    チェックアウト.jpg
  4. 以下のようなウインドウが開きます。
    チェックアウト終了.jpg
  5. フォルダに以下のようなマークが付き、フォルダ内には「.svn」というフォルダが作成されます。
    チェックアウトフォルダ.jpg
    SvnFolder.jpg
    これはこのフォルダがSubversionの管理下に置かれたことを意味します。
    今後はこのフォルダの下位にファイルやフォルダを置いて管理していく事になります。
  • あれ?なんでここでインポートしないの?
    ここの説明では、リポジトリの作成後すぐに作業コピーの作成(SVN チェックアウト)しています。
    Subversionの本や、別のWebページを見ている方は「あれ?リポジトリの作成の後でインポートをしてから作業コピーの作成(SVN チェックアウト)をするんじゃないの?」とお思いでしょう。
    この「インポート」と後に出る「追加」は意味が似ていてとても分かりずらいため、ここでは「インポート」をしなくても良い様に説明しています。

頻繁にやる事

ファイルとフォルダを追加する(追加)

先ほど作成した作業コピー「D:\proj」内に登録したいファイルやフォルダをコピーします。
自分で作ったソース以外にも、他からダウンロードしてきた使っているソースも一緒に置いておくと良いと思います。
また、プロジェクトごと、あるいはライブラリごとにフォルダ分けする事をお勧めします。

Folderdivision.jpg


コピーが終わりましたら登録したいフォルダ又はファイルを右クリック→[TortoiseSVN]→[追加(A)]を押します。
追加ウインドウが出ますので、追加したいファイルを選んで[OK]ボタンを押します。

SvnAdd.jpg


フォルダ又はファイルに追加マークが付きます。
エクスプローラの[表示(V)]→[最新の情報に表示(R)]をして表示を更新しないとマークが付かない場合があります。

FolderAdd.jpg


追加の後は必ずコミットをして、リポジトリ側に変更を登録する必要があります。

CommitIcon.jpg


間違って追加したフォルダやファイルはコミット前であれば[右クリック]→[TortoiseSVN]→[元に戻す(V)]で解除する事が出来ます。
ただし、この[元に戻す(V)]は不用意にフォルダ全体に対して行うと他の修正も全て元に戻してしまうので注意してください。
私はこれで変更中のコミットしていないファイルが元に戻って泣きました。
追加を実行する前に一度全体をコミットしておく癖をつけておくと、上記のような悲劇に見舞われずに済むとおもいます。

ファイルとフォルダを削除する(削除)

登録済みのファイルはSubversionの管理下のリポジトリに置かれます。
そのため、普通に削除をしてもSubversionの管理上は削除になりません。
普通に削除をしてもリポジトリには情報が残っていますので、管理下のフォルダに対して右クリック→[SVN 更新(U)]をすると削除したファイルが復活してしまいます。

リポジトリ内の情報にもファイルの削除を知らせたい場合は
削除したいファイル・フォルダを選択後、右クリック→[TortoiseSVN]→[削除(D)]を押します。
削除ウインドウが出ますので、削除する対象が間違っていないか確認してから[OK]ボタンを押します。

DeleteIcon.jpg

フォルダは上記のように×マークが付きますが、ファイルについては削除をした直後にファイル自体が見えなくなります。

追加の後は必ずコミットをして、リポジトリ側に変更を登録する必要があります。

間違って削除してしまったフォルダはコミット前であれば[右クリック]→[TortoiseSVN]→[元に戻す(V)]で解除する事が出来ます。
ファイルについては、削除をした直後にファイル自体が無くなってしまうので、上位フォルダに対して右クリック→[TortoiseSVN]→[元に戻す(V)]を行う事によって解除する事が出来ます。
ただし、この[元に戻す(V)]は不用意にフォルダ全体に対して行うと他の修正も全て元に戻してしまうので注意してください。
私はこれで変更中のコミットしていないファイルが元に戻って泣きました。
削除を実行する前に一度全体をコミットしておく癖をつけておくと、上記のような悲劇に見舞われずに済むとおもいます。

ファイルとフォルダの名前の変更(名前を変更)

登録済みのファイルはSubversionの管理下に置かれます。
そのため、普通に名前の変更をしてもSubversionの管理上は名前の変更をした事になりません。

名前の変更をしたいファイル・フォルダを1つ選択後、右クリック→[TortoiseSVN]→[名前を変更(N)]を押します。

名前の変更.jpg

出てくるウインドウに変更したい名前を入力して[OK]ボタンを押します。

RenameIcon.jpg

フォルダの場合はこのように古いフォルダ名に削除マークと、新しいフォルダ名に追加マークが見えます。
ファイルの場合はただ単純に変更後のファイル名に追加マークが付きます。
こういう見てくれでも、ただ単純に削除・追加をしたわけではなくちゃんと内部ではリネームしたという情報で記録されますのでご安心を。


この後は必ずコミットをする必要があります。

ファイルの内容を変更

ファイルの内容を変更すると、Subversionは自動的に変更を検知し、赤いマークのついたアイコンが表示されます。

EditIcon.jpg

記録したいタイミングで適度にコミットをする必要があります。

CommitIcon.jpg

ファイルとフォルダを記録する(SVN コミット)

コミットをする前はあくまでもリポジトリに保管する予約をしてるに過ぎませんので、ファイルやフォルダに何らかの変更を加えた後は必ずコミットする必要があります。
コミットをしたいファイル・フォルダを選択後、右クリック→[SVN 更新]を押します。
ウインドウが表示されますのでコミット内容を確認後、メッセージにどんな変更をしたかのメモを書いてから[OK]ボタンを押します。

SvnCommit.jpg

ファイルとフォルダを取り出す(SVN 更新)

ファイルを誤って削除してしまったので記録した内容から復元したい場合や、他の人が記録した内容を自分の作業コピーに反映させたい場合に更新を行います。
更新をしたいファイル・フォルダを選択後、右クリック→[SVN 更新]を押します。

「.svn」フォルダを抜いた状態でファイル・フォルダをコピーする(エクスポート)

※TortoiseSVN(Subversion)1.7からは「.svn」のフォルダは作業コピーのルートのみ存在する様になりましたので、ほとんどの場合は普通にコピーで済む様になりました
以下の情報は1.6以前、あるいは作業コピーのルートフォルダごとコピーしたい場合の話です

CVSの管理下におかれたフォルダには必ず「.svn」という管理情報が入っているフォルダが作成されます。
ソースコード公開等で管理下のファイル・フォルダをコピーする際に、この管理フォルダが逆に邪魔になる事でしょう。
コピー後に手で一つ一つ消すのでも良いのですが、以下の方法で「.svn」を抜かしたファイルを取り出す事が出来ます

  1. コピーしたいファイル・フォルダを選択
  2. 右クリック→[TortoiseSVN]→[エクスポート]

さらに理解を深めるための説明

Subversionのリポジトリ内の仮想フォルダと実際のフォルダの関係

Subversionのリポジトリ内の仮想フォルダ構成は、普通に表示をしても見る事が出来ません。
見るにはデスクトップを右クリック→[TortoiseSVN]→[リポジトリブラウザ]を押します。
ウインドウが表示されますので、URLにポジトリのフォルダを登録します。
これはプルダウンメニューで選べるはずです。表記的には「file:///D:/repo」という感じになります 最後に[OK]ボタンを押します。

SVN仮想フォルダ構成.jpg

作業コピー構成はこのような状態になります。
このフォルダ構成では「D:\proj」が作業コピーのルートにしています。

#ref(): File not found: "作業コピー構成.jpg" at page "Subversion/Windowsで使う(TortoiseSVN)"

困った時の対処(FAQ)

TortoiseSVN(Subversion)1.6以前から1.7にすると作業コピーが使えなくなった

TortoiseSVN(Subversion)1.6以前から1.7にすると、オーバーレイアイコンが表示されない、右クリックしてもコミット(Commit)・更新(Update)が出来ない…
以上の症状が出るのは、TortoiseSVN(Subversion)1.7 から作業コピーの形式が変わった事が原因です
1.6以前から1.7以降のバージョンにした場合、作業コピーのアップグレードが必要になります
TortoiseSVN(Subversion)1.6以前に作られた作業コピーを1.7形式へを参照してください

作業コピーのフォルダにオーバーレイアイコンが表示されない

TortoiseSVN 1.6.8.19260以降で確認されている症状です
解決策としては以下の方法を試します

  1. TortoiseSVNのインストールファイルを実行します
  2. 次へボタンでインストールを進めます
  3. 以下の画面で[Repair]ボタンを押します
    TortoiseSVN_Install_Repair.jpg
  4. 次へボタンでインストールを進めます
  5. PCの再起動をします

使い続けてるとアイコンが変になるんですけど…

使っているうちに、オーバーレイアイコンの表示がおかしくなる現象が起きます(Windows2000の場合は特に頻繁に起こります)
これはアイコン表示をコロコロと変更するようなソフトの宿命で以下のコマンドで修正されます。

TortoiseProc.exe /command:rebuildiconcache

もしくはアイコンの修復をしてくれるソフトを入れておいても良いでしょう。
私は以下のソフトを使っています。

  • KH Software Factory-KH DeskKeeper2007
    本来の使い方は、デスクトップアイコンの並びを記憶しておいて、誤って配置が崩れてしまったときに簡単に元の並び方に復元することができるソフトウェアです。
    初期設定で解像度が変わるたびにアイコン位置を保存&配置を修復してくれるため、例えばフルスクリーン表示するゲームの後でアイコンの配列が変わってしまうのを元に戻してくれます。

ネットワークドライブにあるファイルのアイコンがオーバーレイ表示しない

設定を変更します

  1. [TortoiseSVN]の[設定]を開きます。
  2. 設定ダイアログ内のツリーの[アイコンオーバーレイ]を選び、[ドライブの種類]の[ネットワークドライブ(N)]にチェックを入れます。
    icon_networkdrive.jpg

「Subversionコマンドラインクライアント」の使い方

リポジトリからリポジトリへの移行

repoからrepo2に内容を移す場合のコマンド

svnadmin dump D:\svn\repo > d:\repo.dump
svnadmin create D:\svn\repo2 --fs-type fsfs
svnadmin load D:\svn\repo2 < d:\repo.dump
  • この場合、repo2は作りたてのリポジトリである必要があります。
  • これやんなくても、リポジトリフォルダのコピーだけで移行できる気がするけど(汗)

リポジトリが壊れていないか調べる

リポジトリが壊れていないかチェックするコマンド

svnadmin verify D:\svn\repo

リポジトリをWeb上のレンタルサーバに置く

別ページにまとめてあります。