Subversion の svnserve をサーバー起動時に起動させる方法
弊社新事務所4日目にしてやっとauカードの私以外の全員がインターネットに繋がりました(汗;)。
ホームランバッターがバット無し状態で何日も練習するようなモンです。A(^_^;)~~
それはさておき、Subversionの覚書。
Subversionとはバージョン管理システムのことを言います。「サブバージョン」と読み、CVSと言う従来定番だったバージョン管理システムの次世代型とも言われています。
バージョン管理システムとは、何と言えばいいのでしょう、例えば、下記、実際にあった悲惨な話が元ネタ。
それぞれ離れたところにいるAさん、Bさん、と言う2人の開発者が同じプロジェクトの開発をしている、としましょう。
ある日たまたま2人とも同じプログラム、hoge.rb、を編集する。
Aさんが共同サーバー上にあるhoge.rbを編集、10時間かけて色々修正。
BさんがAさんが作業し始めて9時間55分経った時に、同じく共同サーバー上にあるhoge.rbを編集、20分かけてちょちょっと修正。
Aさんが修正が完了したhoge.rbを更新する。10時間の作業、お疲れさま。
その15分後、Bさんがhoge.rbを更新する。20分の作業、お疲れさま。
・・・コホン m(~;)~~
お疲れさまじゃな~~いぃ!!!ヾ(。`Д´。)ノ彡☆
つまり、BさんはAさんが修正し始める前の状態のhoge.rbをサーバーから落として修正し、更新しているので、Aさんがhoge.rbを既に閉じてしまっていたら10時間分の苦労は跡形も無く闇に消えてしまうのだ。。。
こんな夜はAさんにとってブルースの音色が酒の酔いと共にやけに骨にしみてくるだろう、いや、空しすぎる。。。これを機にAさんはパンク音楽に目覚めるかもしれない。
話を早送り、このようなケースで彼らがバージョン管理システムを使っているとAさんはブルースに酔う必要もパンク音楽に目覚める必要もなくなってくる。
と言うのもhoge.rbのバージョンを管理してくれるんだ。つまり、Aさんが編集前のhoge.rbはバージョン88だっとしたら、Aさんが作業終了後、更新してバージョンは89になる。一方Bさんはバージョン88の状態で落としてきて修正、更新しようとする。
するとSubversionは怒るのだ、「Bさん、あんたが修正し始めたhoge.rbは既にもっと新しいバージョンになってるよ。バージョンが衝突してるよ」
Bさんは自分が修正を終えたhoge.rbとバージョン89のhoge.rbとの違いを見て適切な対処をすることが出来る(マージする、と言います)。もっと古いバージョンとの違いも見ることが出来る。もっと言えば最新版が正規版と見なされるんだが、それを古いバージョンに戻すことだって出来る。後、開発用のプログラムのみならず、ワードやエクセルファイルでもバージョン管理出来ます。
と言うのがバージョン管理システム。で、こんにち数多くの開発者が日中仕事をしながら「Subversion万歳」とつぶやいているようだが実は私もその1人(笑)。
遠回りしたが下記覚書。
svnserve --daemon --root /リポジトリへのパス/リポジトリ名
とすれば開発サーバーからネットワーク越しにSubversionを利用できる。が、この場合、サーバーが再起動すればサービスももう一度立ち上げなければいけない。
サーバー起動時に起動させる方法。
vi /etc/inetd.conf
で
svn stream tcp nowait root /usr/sbin/tcpd /usr/bin/svnserve -i -r /リポジトリへのパス/リポジトリ名
上書き保存。inet(スーバーサーバーデーモン)再起動。
/etc/init.d/inet restart
以上(笑)。でもちと手間取った。。。そもそもなんで root なんだ。ググったら Subversionユーザって書いてあったのに。。。
rootで上手く行きました。
後、/etc/init.d/inet restart の前に
vi /リポジトリへのパス/リポジトリ名/プロジェクト名/conf/svnserve.conf
(元々あったのはバックアップし、新規に作る)
[general]
anon-access = none
auth-access = write
password-db = passwd
として読み書きに認証を必要とする。
vi /リポジトリへのパス/リポジトリ名/プロジェクト名/conf/passwd
[users]
ユーザー名:パスワード
1人ずつ追加
を記述。
んっと、Subversionを使うには他にもしなければいけないことが幾つかある(そんなに無いけど)。なのでこの投稿のみならず他のサイトも参照してください。
とまぁ、自分勝手な覚書で恐縮ですが、ここまで読んでくれた方にお得なネタを1つ。
Subversionユーザー、しかもTortoiseSVNユーザー限定だが。
リンク先の中身は開いてからのお楽しみ。変なサイトでは無いのでご安心を(笑)。
広ブロっち♪ d(^-^)