Ubuntu で Subversion サーバを立てる時のメモ。
(Ubuntu 10.04, subversion-1.7.3)
ソースからビルドして導入。
1. Subversion のソースをダウンロード
http://subversion.apache.org/ からたどる。
2. xinetd, libapr, libapr-util をインストール
# apt-get install xinetd libapr1-dev libaprutil1-dev
3. ソースコードを展開してビルド、インストール
$ tar zxvf subversion-1.7.3.tar.gz $ cd subversion-1.7.3 $ ./configure $ make # make install
4. /etc/xinetd.d/svn を作成し、xinetd をリスタート
# vi /etc/xinetd.d/svn (下記の内容を記述) service svn { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/local/bin/svnserve server_args = -i -r /opt/svn (← Subversion 用ディレクトリ) env = LANG=ja_JP.UTF-8 passenv = LANG } (xinetd をリスタート) # /etc/init.d/xinetd restart
5. Subversion 用ディレクトリの作成
# mkdir /opt/svn # groupadd svn # chown -R :svn /opt/svn # chmod -R 770 /opt/svn # chmod g+s /opt/svn # umask 002 # usermod -G svn masao (ユーザ masao を svn グループに追加。※アクセスする人すべて追加が必要)
6. telnet コマンドで動作確認
$ telnet localhost 3690 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops atomic-revprops partial-replay ) ) ) (success が見えれば OK。quit で抜ける)
7. リポジトリ作成
hogehoge というリポジトリを作成する例。
# umask 002 # cd /opt/svn # svnadmin create hogehoge
rep-cache.db のモードを変更しておく。リポジトリを作った人の権限になるため。
# chmod 664 /opt/svn/hogehoge/db/rep-cache.db
8. リポジトリのディレクトリ構成例
hogehoge/trunk (トランク) /tags (タグ用) /branch (ブランチ用)
9. リポジトリへのアクセス例 (check out)
$ svn co svn+ssh://192.168.0.10/opt/svn/hogehoge/trunk
10. その他メモ
■ファイル名文字コード変換
$ kcc -c filename $ convmv -r -f euc-jp -t utf-8 * --notest
■文字コード変換 (Windows 系からリリースされたソースをインポートするときとか)
$ find . -type f | xargs -n 10 nkf -w -Lw --overwrite (UTF-8 CR+LF)
■バイナリ テキスト 誤認識変更
(確認) $ svn propget svn:mime-type * (テキスト→バイナリ) $ svn propset svn:mime-type application/octet-stream *.pdf (バイナリ→テキスト) $ svn propset svn:mime-type text/x-tex hoge.tex $ svn propdel svn:mime-type hoge.tex $ svn commit -m ''
■実行権変更
$ svn propset svn:executable ON hogehoge.sh
■再帰的に add
$ svn add * --force
■無視ファイルを登録する
(チェック) $ svn status --no-ignore $ svn status --no-ignore | grep -v ^A (結果を編集して svn add)
● Subversion, サブバージョン, サーバ, server, svn, svn+ssh