バリケンのRuby日記 RSSフィード

2007-08-27

[] TortoiseSVNを使ってSubversionサーバアクセス  TortoiseSVNを使ってSubversionサーバにアクセス - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  TortoiseSVNを使ってSubversionサーバにアクセス - バリケンのRuby日記  TortoiseSVNを使ってSubversionサーバにアクセス - バリケンのRuby日記 のブックマークコメント

前回設定したSubversionサーバに、Windows用のSubversionクライアント「TortoiseSVN」を使ってアクセスする例だよ。

ちなみに、TortoiseSVNのセットアップはこちらが参考になるよ。また、TortoiseSVNsvn+sshを使うときの設定はこちらが参考になるよ。

リポジトリデータベースの作成

まず、サーバ側でリポジトリデータベースを作成するよ。開発用サーバへのログインして、

$ ssh -p [sshポート番号] [レンタルサーバのホスト名] -l [ログインID]

svnadminコマンドリポジトリデータベースを作るよ。

% svnadmin create --fs-type fsfs ~/svn/[プロジェクト名]

プロジェクトインポート

ここからはローカルのPCで操作するよ。railsコマンドで作成したプロジェクトフォルダ右クリックして、「TortoiseSVN」→「インポート」を選ぶよ。

f:id:muscovyduck:20070827204441p:image

リポジトリ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を使うクライアントとも設定を共有できて便利だよ。

f:id:muscovyduck:20070827204442p:image

インポートする前に秘密鍵パスフレーズを聞かれるから、入力してね。成功すると、インポートしたファイルの一覧が表示されるよ。

f:id:muscovyduck:20070827204443p:image

いったん削除してチェックアウト

インポートが終わったら、いったんローカルプロジェクトフォルダ内のファイルをすべて削除するよ。

f:id:muscovyduck:20070827204444p:image

そしてそのフォルダ内で右クリックして、「TortoiseSVN」→「SVNチェックアウト」を選ぶよ。

f:id:muscovyduck:20070827204445p:image

リポジトリURLは、先ほど同様「svn+ssh://[ログインID]@[レンタルサーバホスト名]/home/[ログインID]/svn/[プロジェクト名]/trunk」を指定するよ。チェックアウトディレクトリは、(先ほどすべてのファイル削除して空になった)プロジェクトフォルダを指定するよ。

f:id:muscovyduck:20070827204447p:image

チェックアウトしたファイルの一覧が表示されるよ。

ちなみに、PuTTYのpageant.exeを起動しておくと、チェックイン・チェックアウトのときに毎回秘密鍵パスワード入力しなくても良くなるよ。こちらのサイトを参考にしてね。

ファイル削除フォルダ属性の追加

その次は、logフォルダ*.logファイル削除するよ。もちろん、ローカルファイル普通削除するんじゃなくて、リポジトリデータベースの中のファイル削除するから、対象ファイルを指定したあとに右クリックして「TortoiseSVN」→「削除」を選ぶよ。

f:id:muscovyduck:20070827204448p:image

また、logフォルダ属性として「*.log」というファイルについては今後無視するように設定するよ。logフォルダ右クリックして「プロパティ」を選択して、「Subversion」のタブを表示したら「属性」をクリックするよ。

f:id:muscovyduck:20070827204449p:image

属性名」には「svn:ignore」を指定してね。また、「属性値」には「*.log」を指定するよ。

f:id:muscovyduck:20070827204450p:image

「OK」をクリックすれば属性が追加されるよ。

f:id:muscovyduck:20070827204451p:image

同様にtmpフォルダ以下も無視属性を追加するよ。このあたりの「共有したくないもの」はプロジェクトによって異なるから、いろいろ経験して覚えていくといいんじゃないかな。

f:id:muscovyduck:20070827204453p:image

「OK」をクリックすれば属性が追加されるよ。

f:id:muscovyduck:20070827204454p:image

このあたりでチェックインコミット)するよ。プロジェクトフォルダ右クリックして「SVN コミット」を選ぶよ。またメッセージは何を書いてもいいけど、ここでは「logとtmp/sessionsに無視属性を追加」というメッセージにしてみたよ。

f:id:muscovyduck:20070827204455p:image

ファイル名の変更

今度はconfig/database.ymlファイルに対して「名前の変更」の機能を試してみるよ。「削除」同様、ローカルファイルの名前を変更するんじゃなくて、リポジトリデータベースの中のファイルの名前を変更したいから、対象ファイルを指定したあとに右クリックして「TortoiseSVN」→「名前の変更」を選ぶよ。

手元にあるファイルは、あくまでリポジトリデータベースからコピーした「作業ファイル」であることを忘れないでね。

f:id:muscovyduck:20070827204456p:image

database.ymlをdatabase.example.ymlに変更するよ。

f:id:muscovyduck:20070827204457p:image

ついでに、今後はdatabase.ymlファイルを無視するようにconfigフォルダに無視属性を追加するよ。configフォルダ右クリックして「プロパティ」を選択して、「Subversion」のタブを表示したら「属性」をクリックするよ。

属性名」には「svn:ignore」を指定してね。また、「属性値」には「database.yml」を指定するよ。

f:id:muscovyduck:20070827205017p:image

「OK」をクリックすれば属性が追加されるよ。

f:id:muscovyduck:20070827205018p:image

またこのあたりでチェックインコミット)するよ。プロジェクトフォルダ右クリックして「SVN コミット」を選ぶよ。またメッセージは何を書いてもいいけど、ここでは「database.ymlをdatabase.example.ymlに名前変更」というメッセージにしてみたよ。

f:id:muscovyduck:20070827205019p:image

うまくいけば、チェックインしたファイルの一覧が表示されるよ。

f:id:muscovyduck:20070827205020p:image

どうだったかな?コマンドラインで使うよりもSubversion概念が理解しやすいと思うから、Windowsを使っている人にはTortoiseSVNオススメだよ。

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20070827