2011年12月24日土曜日

Subversion導入メモ

クリスマスだ。ということで、Subversionの導入メモだ。
これからはGitだぜ的な世の中だけど、大抵の現場ではまだ根強く使われているであろうSubversion…
何だこの始まり方は。

試した環境

CentOS 6.0

インストール

Subversion本体
# yum install subversion
mod_dav_svn
Apache経由で(HTTPで)リポジトリにアクセスするために「mod_dav_svn」モジュールをインストール。
# yum install mod_dav_svn

リポジトリ作成

「svnadmin create」コマンドを使用。
下の例では、まずSVNのホームディレクトリを作成し、それからrepo1リポジトリを作成。
最後にディレクトリの所有者をapacheに変更。
# mkdir /var/www/svn
# svnadmin create /var/www/svn/repo1
# chown -R apache:apache /var/www/svn

リポジトリのアクセスアカウント作成

htpasswdコマンドを使用。
下の例では、アカウントuser1とuser2を追加しています。
# htpasswd -cm /etc/httpd/.svnpasswd user1
New password:
Re-type new password:
Adding password for user user1
# htpasswd -m /etc/httpd/.svnpasswd user2
New password:
Re-type new password:
Adding password for user user2

設定ファイル編集

/etc/httpd/conf.d/subversion.confを開き、URLとSVNホームを紐づける設定を定義。
下記の例では、「http://{ホスト}/svn」というURLと「/var/www/svn」を対応付け、さらに先程作成したパスワードファイルを使用して基本認証を行う設定をしています。

編集完了したら、念のため設定ファイルにエラーが無いか確認。
# service httpd configtest

「Syntax OK」を表示されればOKなので、Apache再起動。
僕ずっと「/etc/init.d/httpd」使ってたけど、serviceコマンドなんてのがあったのね。
# service httpd restart

Subersionにアクセスしてみる

チェックアウト
「svn co」コマンドを使用。
下記の例ではrepo1リポジトリにuser1でアクセスしています。
$ svn co http://{ホスト or IPアドレス}/svn/repo1 --username user1
認証領域: Authorization Realm
'user1' のパスワード:
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:

<http://192.168.xx.xx:xx> Authorization Realm

can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/omokuso/.subversion/servers'.
-----------------------------------------------------------------------
暗号化されていないパスワードを保存しますか (yes/no)? no
リビジョン 0 をチェックアウトしました。

最後の「暗号化されていないパスワードを保存しますか?」ですが、保存しておくともちろんそれ以降のアクセスの際に一々パスワード入力せずに済みます。が、それは当然セキュリティ的にはあまりよろしくありません。この辺はお好みで選択してください。

ところで、保存を拒否した場合、何と毎回「暗号化されていないパスワードを保存しますか?」と聞いてきやがります。このお節介を止めさせるのは以下の設定。
$ ~/.subversion/config
store-passwords = no
リソースを追加してみる
流れは
  1. チェックアウトしたディレクトリ配下にリソース新規作成
  2. リソースをバージョン管理に追加
  3. コミット
$ cd repo1
$ mkdir trunk branches tags
$ svn add trunk branches tags
$ svn ci -m "お馴染みのディレクトリ新規追加"

参考

0 件のコメント: