Subversion の引っ越し手順

Apache Subversion CentOS 7
このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク

Subversion で Web サイトのソースコードを管理しているのだが、サーバー切り替えに伴いリポジトリを引っ越したので手順を記録しておく。

移転元

引っ越し元のリポジトリを書き出す。

svnadmin dump /var/www/svn/リポジトリ > /tmp/ダンプファイル.dump

移転先

移転先のサーバーにリポジトリを作成し、コピーしておいたダンプファイルを復元

svnadmin create /var/www/svn/リポジトリ
svnadmin load /var/www/svn/リポジトリ < ダンプファイル.dump
chown apache. -R /var/www/svn/リポジトリ

リポジトリの引っ越し自体はとても簡単だった。

次に、コミット時の自動設定を反映していく。

レビューサイトに自動書き出し

Web サイトのデータを管理しているので、コミット時にレビューサイトに自動書き出しを行っている。

まずはレビューサイトに trunk をチェックアウトしておく。

svn checkout file:///var/www/svn/リポジトリ/trunk /var/www/レビューサイト
chown apache. -R /var/www/レビューサイト

post-commit 設定

vi /var/www/svn/リポジトリ/hooks/post-commit
#!/bin/sh
LANG=en_US.UTF-8 /usr/bin/svn update /var/www/svn/リポジトリ/trunk /var/www/レビューサイト

※コミットするファイル名に日本語が含まれていると動作しなかったため、環境変数を追加した。

chown apache. /var/www/svn/リポジトリ/hooks/post-commit
chmod 755 /var/www/svn/リポジトリ/hooks/post-commit

コメントを再編集可能にする

cp /var/www/svn/リポジトリ/hooks/pre-revprop-change{.tmpl,}
chown apache. /var/www/svn/リポジトリ/hooks/pre-revprop-change
chmod 755 /var/www/svn/リポジトリ/hooks/pre-revprop-change

Perl スクリプトの不具合対応

レビューサイトの CGI 実行時に「End of script output before headers」エラーが発生して動かないものがあった。公開用サイトにアップしたら正常に動くため、原因が分からないままだった。

移転前は Perl のパスに「#!/usr/local/bin/perl --」と連続ハイフンを付けてお茶を濁して動かしていたが、引っ越しに伴い本格的に調査。結果、チェックアウトしたファイルの改行コードがWindows(DOS)形式になっていたことが原因だという事が分かった。(vi で CGI ファイルを開いたとき、ステータスに [noeol][dos] と表示される。改行コードが CRLF のファイルで発生する模様。)

vi 上で「:set ff=unix」を実行して改行コードを修正したところ、動くようになった。

TortoiseSVN で CGI ファイルのプロパティには「svn:executable」に「*」と、「svn:eol-style」に「native」を設定することで回避できるそう。

TortoiseSVN の設定変更

ローカルにチェックアウトしたフォルダで、TortoiseSVN ⇒ Relocate(再配置)から、移転後のリポジトリを設定する。

参考にしたサイト

コメント

タイトルとURLをコピーしました