Tracは使いこなせないのでSubversionだけでやってみる

運用イメージはこんな感じ
#ref(svn.gif,nolink,center)

*インストール [#k23e1239]
http://subversion.tigris.org/~
http://subversion.apache.org/~
svnサーバにインストールする

 # tar xvzf subversion-1.6.6.tar.gz
 # tar xvzf subversion-deps-1.6.6.tar.gz
 # cd subversion-1.6.6
 # 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 は無くなったようです。~
Aapacheはソースからインストール済みで、DAVは使用しないので、オプションは以下で大丈夫かと。

 # 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 フォルダが作業フォルダのトップだけに作成されるようになった!⌣&heart;

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にダウングレードした方がいいらしい。

*サービス起動設定 [#t8b23edc]
単体のデーモンとしても動作させることができるが、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

*アクセス制限の対応 [#m8e00c13]
クライアントと公開サーバからのみ接続を許可する
 # vi /etc/hosts.allow

 svnserve:    192.168.0.2 192.168.0.4
 ALL:         ALL            :deny

*リポジトリの新規作成 [#o711a89c]
 # mkdir /home/svn
 # svnadmin create --fs-type fsfs /home/svn/test_dev
 # chown nobody.nobody -R /home/svn
 # chown nobody.nobody -R /home/svn/test_dev

*認証関連の設定 [#z2fb90bb]
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のインストール [#sd04bb4b]
http://tortoisesvn.tigris.org/~
クライアントに入れる~
同じダウンロードページから日本語のLanguagePackをダウンロードして日本語化ができます

*準備 [#g3487863]
通常 trunk, branches, tags の3つのフォルダを作るらしい~
クライアント側で test_dev フォルダを作成し、 svn://192.168.0.3/test_dev に対してチェックアウトを実行~
trunk, branches, tags のフォルダを作成し、追加、コミット~
一度 test_dev フォルダを削除し、再度 test_dev を作成~
svn://192.168.0.3/test_dev/trunk に対してチェックアウトを実行

*サーバ側での準備 [#ycd2ee26]
公開サーバを /home/test_dev とした場合

 $ cd /home/test_dev
 $ svn --username user1 --password hogehoge1 checkout svn://127.0.0.1/test_dev/trunk ./

パーミッションの取り扱いに注意

*公開サーバへの反映 [#qa7e0c0e]
 $ cd /home/test_dev
 $ svn update

*Apacheでアクセスできないようにする [#y739b710]

 # 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

*ファイル内に最終更新日なんかを自動的に入れたい [#n400f0ef]
こちらを参考に [[Subversion+Tracの使い方]]

*バックアップ方法 [#l7edb385]
http://d.hatena.ne.jp/pasela/20090206/svn_backup

*特定のリビジョンに戻すには [#m9090c1b]

 $ svn update -r 100

*Tips [#k3bf7631]
**TortoiseSVNをバージョンアップしたらアイコンがオーバーレイされなくなった [#zb164177]
インストーラーを再度実行し、Repairで再インストールして再起動してみよう。

*リポジトリを別サーバへ移転 [#xde51ac8]

移転元にてダンプ
 # 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を変更


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS