- 追加された行はこの色です。
- 削除された行はこの色です。
Tracは使いこなせないのでSubversionだけでやってみる
運用イメージはこんな感じ
#ref(svn.gif,nolink,center)
*インストール [#k23e1239]
http://subversion.tigris.org/~
http://subversion.apache.org/~
svnサーバにインストールする
# tar xvzf subversion-1.4.6.tar.gz
# tar xvzf subversion-deps-1.4.6.tar.gz
# cd subversion-1.4.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を変更