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

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

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

 # 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では以下のエラーが出て使用できず。~
やむなくサーバー側を1.7.20に入れなおして利用。
しかし、クライアントの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://portal4.yapy.jp/portal4'
 '/home/svn/portal4/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/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で再インストールして再起動してみよう。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS