2007-08-27
■ [AoR2007] TortoiseSVNを使ってSubversionサーバにアクセス

前回設定したSubversionサーバに、Windows用のSubversionクライアント「TortoiseSVN」を使ってアクセスする例だよ。
ちなみに、TortoiseSVNのセットアップはこちらが参考になるよ。また、TortoiseSVNでsvn+sshを使うときの設定はこちらが参考になるよ。
リポジトリデータベースの作成
まず、サーバ側でリポジトリデータベースを作成するよ。開発用サーバへのログインして、
$ ssh -p [sshポート番号] [レンタルサーバのホスト名] -l [ログインID]
% svnadmin create --fs-type fsfs ~/svn/[プロジェクト名]
プロジェクトのインポート
ここからはローカルのPCで操作するよ。railsコマンドで作成したプロジェクトのフォルダを右クリックして、「TortoiseSVN」→「インポート」を選ぶよ。
リポジトリのURLは、「svn+ssh://[ログインID]@[レンタルサーバのホスト名]/home/[ログインID]/svn/[プロジェクト名]/trunk」を指定するよ。インポートメッセージは何を書いてもいいけど、ここでは「プロジェクトのインポート」としてみたよ。
追記:C:\Documents and Settings\[ユーザーID]\Application Data\Subversion\configファイルの[tunnels]セクションに次のように書いておけば、「svn+ssh」じゃなくて「svn+aor2007」とすることができるから、他のsshサーバとポートの設定を使い分けることが出来るよ。
aor2007 = "C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe" -ssh -l [ユーザーID] -i "C:\\Program Files\\putty\\[秘密鍵のファイル名].ppk" -P 10022
パス区切りの円記号を(「\\」のように)二つ重ねて書いていることに注意してね。
こうしておけば、(Subscripse等の)他のsvn+sshを使うクライアントとも設定を共有できて便利だよ。
インポートする前に秘密鍵のパスフレーズを聞かれるから、入力してね。成功すると、インポートしたファイルの一覧が表示されるよ。
いったん削除してチェックアウト
インポートが終わったら、いったんローカルのプロジェクトフォルダ内のファイルをすべて削除するよ。
そしてそのフォルダ内で右クリックして、「TortoiseSVN」→「SVNチェックアウト」を選ぶよ。
リポジトリのURLは、先ほど同様「svn+ssh://[ログインID]@[レンタルサーバのホスト名]/home/[ログインID]/svn/[プロジェクト名]/trunk」を指定するよ。チェックアウトディレクトリは、(先ほどすべてのファイルを削除して空になった)プロジェクトのフォルダを指定するよ。
チェックアウトしたファイルの一覧が表示されるよ。
ちなみに、PuTTYのpageant.exeを起動しておくと、チェックイン・チェックアウトのときに毎回秘密鍵のパスワードを入力しなくても良くなるよ。こちらのサイトを参考にしてね。
ファイルの削除とフォルダ属性の追加
その次は、logフォルダの*.logファイルを削除するよ。もちろん、ローカルのファイルを普通に削除するんじゃなくて、リポジトリデータベースの中のファイルを削除するから、対象ファイルを指定したあとに右クリックして「TortoiseSVN」→「削除」を選ぶよ。
また、logフォルダの属性として「*.log」というファイルについては今後無視するように設定するよ。logフォルダを右クリックして「プロパティ」を選択して、「Subversion」のタブを表示したら「属性」をクリックするよ。
「属性名」には「svn:ignore」を指定してね。また、「属性値」には「*.log」を指定するよ。
同様にtmpフォルダ以下も無視属性を追加するよ。このあたりの「共有したくないもの」はプロジェクトによって異なるから、いろいろ経験して覚えていくといいんじゃないかな。
このあたりでチェックイン(コミット)するよ。プロジェクトのフォルダで右クリックして「SVN コミット」を選ぶよ。またメッセージは何を書いてもいいけど、ここでは「logとtmp/sessionsに無視属性を追加」というメッセージにしてみたよ。
ファイル名の変更
今度はconfig/database.ymlファイルに対して「名前の変更」の機能を試してみるよ。「削除」同様、ローカルのファイルの名前を変更するんじゃなくて、リポジトリデータベースの中のファイルの名前を変更したいから、対象ファイルを指定したあとに右クリックして「TortoiseSVN」→「名前の変更」を選ぶよ。
手元にあるファイルは、あくまでリポジトリデータベースからコピーした「作業ファイル」であることを忘れないでね。
database.ymlをdatabase.example.ymlに変更するよ。
ついでに、今後はdatabase.ymlファイルを無視するようにconfigフォルダに無視属性を追加するよ。configフォルダを右クリックして「プロパティ」を選択して、「Subversion」のタブを表示したら「属性」をクリックするよ。
「属性名」には「svn:ignore」を指定してね。また、「属性値」には「database.yml」を指定するよ。
またこのあたりでチェックイン(コミット)するよ。プロジェクトのフォルダで右クリックして「SVN コミット」を選ぶよ。またメッセージは何を書いてもいいけど、ここでは「database.ymlをdatabase.example.ymlに名前変更」というメッセージにしてみたよ。
うまくいけば、チェックインしたファイルの一覧が表示されるよ。
どうだったかな?コマンドラインで使うよりもSubversionの概念が理解しやすいと思うから、Windowsを使っている人にはTortoiseSVNはオススメだよ。


















