最近 Linux と Windows を交互に切り替えて使ってるので、共有レポジトリでバージョン管理したいなと思い、
SVN をセットアップしてみた。そのときのメモ。
ただなんか色々調べてると Mercurial というのが結構あついみたいだね。
Mercurial - Mercurial
Windows から使いづらそうだったのでパスしたけど。
# yum install mod_dav_svn subversionrpmforge を yum レポジトリに追加する方法は CentOS 5 で DAG(rpmforge) の yum repository 追加 を参考。
まずは webdav モジュールを有効にするため /etc/httpd/conf/httpd.conf を修正する。
以下のようにコメントを外して mod_dav を有効にする。
# vi /etc/httpd/conf/httpd.conf
LoadModule dav_module modules/mod_dav.so
次にパッケージをインストールすると、 /etc/httpd/conf.d/subversion.conf というのがインストールされているので、
subversion を有効にするため、 以下の行のコメントを外す。
# vi /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module /usr/lib/httpd/modules/mod_dav_svn.so LoadModule authz_svn_module /usr/lib/httpd/modules/mod_authz_svn.so ... <Location /repos> DAV svn SVNParentPath /home/svn # # # Limit write permission to list of valid users. # <LimitExcept GET PROPFIND OPTIONS REPORT> # # Require SSL connection for password protection. # # SSLRequireSSL # # AuthType Basic # AuthName "Authorization Realm" # AuthUserFile /path/to/passwdfile # Require valid-user # </LimitExcept> </Location>
これで http://localhost/repos にアクセスすると /home/svn 配下にある SVNParentPath を参照するになるらしい。
ちなみに、 SVNParentPath とは、そこで指定したディレクトリはいかが全てレポジトリであることを指定している。
次に試しにレポジトリを作ってみる。新しいレポジトリ名を Test として作成。
# mkdir /home/svn # svnadmin create /home/svn/Test # chown -R apache:apache /home/svn/Testレポジトリを作成したら、 apache の設定をリロードさせてエラーが出ないか確認してみよう。
# service httpd reloadエラーが出なければ成功でしょう。いざ http://localhost/repos/Test にアクセスしてみる。
とりあえずこの状態でレポジトリへの追加ができるかどうか試してみましょう。
まずは Windows からだけど、俺は Visual Studio が大好きなので、ankhsvn というめちゃくちゃ便利な GUI ツールを使ってみました。
Visual Studio のプラグインであっという間に Solution を SVN で管理できて超便利。
とにかくダウンロードしてインストールしてみましょう。
ダウンロードは ankhsvn: Documents & files: 1.0 からできる。
インストールして Visual Studio (2003) を起動し、ためしに新しいプロジェクトを作成してみた。
[ソリューションエクスプローラ] でソリューションを右クリックすると [Ankh] というのが新しく追加されていて、
その中に [Add solution to Subversion repository...] というのが見つかる。
これをクリックすると、追加したいレポジトリを入力する画面が出てきて、
ここで先ほど追加したレポジトリを入力する。
あとはダイアログに従っていくだけで、 SVN に追加できてしまった。
その他 co や update 、 log や diff も GUI で全部できるみたい。 Visual Studio ユーザにはとても便利なプラグイン。
今度は Linux からですが、手始めに先ほど Windows で ci したレポジトリを co してみた。
$ svn co http://localhost/repos/Test/ A Test/AssemblyInfo.cs A Test/WindowsApplication2.csproj A Test/Form1.resx A Test/Form1.cs A Test/App.ico A Test/WindowsApplication2.sln Checked out revision 1.できた。実に簡単。次は ci してみよう。
$ export SVN_EDITOR=vi $ svn ci Test/Form1.csここで vi が起動しコメントがかける。
Sending Test/Form1.cs Transmitting file data . Committed revision 2.
どうやら ci されたようだ。
その他のコマンドは後で svn コマンド一覧でも作ろうかな。
後は今のままだと誰でも ci できてしまうので、次回はこれを ssh で制限させたりする必要もありそうだ。