« 事務所移転 | メイン | 山登り »

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ユーザー限定だが。

xdocdiff

リンク先の中身は開いてからのお楽しみ。変なサイトでは無いのでご安心を(笑)。



広ブロっち♪ d(^-^)

トラックバック

このエントリーのトラックバックURL:

コメント

技術系なことはよく
わかりませんが
パンクにはしりたく
なるきもちは
スコシわかるような気がします。

面白いねぇ。
れいくんどくとくだよ。

>わさん

> パンクにはしりたく
> なるきもちは
> スコシわかるような気がします。

そうですね。ジョークで書きましたが、結局のところ全ては事象です。

コメントを投稿