Tracは使いこなせないのでSubversionだけでやってみる 運用イメージはこんな感じ インストール †http://subversion.apache.org/ # tar xvzf subversion-1.6.17.tar.gz # tar xvzf subversion-deps-1.6.17.tar.gz # cd subversion-1.6.17 # ./configure # make # make install 1.7以降は subversion-deps-1.7.*.tar.gz は無くなったようです。 # tar xvzf subversion-1.7.1.tar.gz # cd subversion-1.7.1 # ./get-deps.sh # ./configure --with-apr-util=/usr/local/apache2 --without-serf # make # make install get-deps.sh で取得されるものは、 apr-1.4.5.tar.bz2 apr-util-1.3.12.tar.bz2 neon-0.29.6.tar.gz serf-0.7.2.tar.bz2 zlib-1.2.8.tar.bz2 sqlite-amalgamation-3070603.zip 1.7になって変わったところは .svn フォルダが作業フォルダのトップだけに作成されるようになった! apache2.4以降、subversion1.7.4以降の場合は以下 # ./configure --with-apr-util=/usr/local/apr-util subversion1.8.13以降の場合は # ./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util しかし、クライアントのTortoiseSVNバージョン1.8.11では以下のエラーが出て使用できず。 Expected FS format between '1' and '4'; found format '6' 下位互換で利用するためには以下で作成するとOK # svnadmin create --compatible-version 1.6 --fs-type fsfs /home/svn/test_dev /usr/bin/ld: cannot find -lexpat と表示される場合は expat-devel を入れる # yum install expat-devel 1.9.3を入れようとすると、 # ./get-deps.sh If you require mod_dav_svn, the recommended version of httpd is: http://archive.apache.org/dist/httpd/httpd-2.4.10.tar.bz2 If you require apr-iconv, its recommended version is: http://archive.apache.org/dist/apr/apr-iconv-1.2.1.tar.bz2 と出るが無視してインストール続行 しかし、クライアントからチェックアウトしようとすると以下のエラーが発生 Unable to connect to a repository at URL 'svn://example.com/dir' '/home/svn/dir/db/format' contains invalid filesystem format option 'addressing logical' 調べると fsfsフォーマットが違って云々あったので、1.8にダウングレードした方がいいらしい。 サービス起動設定 †単体のデーモンとしても動作させることができるが、inetd経由で動かす # vi /etc/xinetd.d/svn service svn { disable = no socket_type = stream protocol = tcp wait = no user = nobody server = /usr/local/bin/svnserve server_args = -i -r /home/svn } 1.7.4あたりからは以下 server = /usr/bin/svnserve # /sbin/chkconfig --add svn # /etc/rc.d/init.d/xinetd restart xinetdが入っていない場合は # yum install xinetd アクセス制限の対応 †クライアントと公開サーバからのみ接続を許可する # vi /etc/hosts.allow svnserve: 192.168.0.2 192.168.0.4 ALL: ALL :deny リポジトリの新規作成 †# mkdir /home/svn # svnadmin create --fs-type fsfs /home/svn/test_dev # chown nobody.nobody -R /home/svn/test_dev 認証関連の設定 †anonymousは何もさせずに認証済みユーザーは読み書きOKにする # vi /home/svn/test_dev/conf/svnserve.conf anon-access = none auth-access = write password-db = /home/svn/.password-db # vi /home/svn/.password-db [users] user1 = hogehoge1 user2 = hogehoge2 リポジトリのURLは svn://192.168.0.3/test_dev TortoiseSVNのインストール †http://tortoisesvn.tigris.org/ 準備 †通常 trunk, branches, tags の3つのフォルダを作るらしい サーバ側での準備 †公開サーバを /home/test_dev とした場合 $ cd /home/test_dev $ svn --username user1 --password hogehoge1 checkout svn://127.0.0.1/test_dev/trunk ./ パーミッションの取り扱いに注意 公開サーバへの反映 †$ cd /home/test_dev $ svn update Apacheでアクセスできないようにする †# vi /usr/local/apache2/conf/httpd.conf <DirectoryMatch "\.svn"> Order allow,deny Deny from all Satisfy All </DirectoryMatch> # /etc/rc.d/init.d/httpd graceful ファイル内に最終更新日なんかを自動的に入れたい †こちらを参考に Subversion+Tracの使い方 特定のリビジョンに戻すには †$ svn update -r 100 Tips †TortoiseSVNをバージョンアップしたらアイコンがオーバーレイされなくなった †インストーラーを再度実行し、Repairで再インストールして再起動してみよう。 リポジトリを別サーバへ移転 †移転元にてダンプ # svnadmin dump /home/svn/test_dev > svn_test_dev.dump # gzip svn_test_dev.dump 移転先にてリストア # gunzip svn_test_dev.dump.gz # svnadmin create --compatible-version 1.6 --fs-type fsfs /home/svn/test_dev # svnadmin load /home/svn/test_dev < svn_test_dev.dump # vi /home/svn/test_dev/conf/svnserve.conf # chown nobody.nobody -R /home/svn/test_dev TortoiseSVNは右クリックのメニューから 再配置 を選択してURLを変更 |