- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

はじめに Edit

バージョン管理ソフトsubversionのサーバーを立ち上げようというお話。

細かい設定やWindowsでのクライアントの使い方などは Subversion も参考にしてください。

インストール Edit

apt-get install subversion

ローカルでテスト Edit

とりあえず、ローカルのファイル経由(ネットワークではなく)でテストしてみる。

レポジトリの作成とインポート Edit

/homeの下にsvnというユーザーで、
svnというディレクトリを作り、そこにレポジトリを作っていくとします。
(この辺は、自由に決めてください)

以下のようにして、ユーザーを作成し、ディレクトリも作っておく。

adduser svn
su svn

テスト用のhogeプロジェクトのレポジトリを作る。

cd /home/svn
svnadmin create hoge

テスト用のファイルを作る。

mkdir ~/work; cd ~/work
mkdir test_import
cd test_import
mkdir trunk branches tags 
echo "Hello, subversion!!" > trunk/test.txt

そして、インポート(レポジトリに入れる)してみる。

svn import . file:///home/svn/hoge/ -m "initial import"

以下のように表示されるはず。

Adding         trunk
Adding         trunk/test.txt
Adding         branches
Adding         tags

Committed revision 1.

レポジトリの確認とチェックアウト Edit

そして、ファイル内容を表示してみる。

svn ls -R file:///home/svn/hoge/

以下のように出るはず。

branches/
tags/
trunk/
trunk/test.txt

ためしにチェックアウト(レポジトリから取り出す)してみる。
(ここでは、trunkのみを取り出してみる)

cd ~/work/
mkdir test_checkout; cd test_checkout
svn checkout file:///home/svn/hoge/trunk

以下のように表示されるはずです。

A    trunk/test.txt
Checked out revision 1.

中身を表示してみる

cat  trunk/test.txt

上手くいった?

ネットワーク経由で使う(svn+ssh編) Edit

svn+sshで認証して、subversionしようというお話。

クライアントは、Windows + TortoiseSVN + PuTTYです。

その他の環境の人、ごめんなさい。

sshでログイン出来るように下準備 Edit

su svn
cd 
mkdir .ssh
chmod 700 .ssh
vi .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

などとして、公開鍵を設定しておく。細かいところは、ssh/PuTTY参照。
具体的な作業としては、

  • PUTTYで鍵を作る
  • 設定を名前をつけて保存する

といったことが必要。

この時点で、ユーザーsvnでsshで、ログインできるはず。でないとダメです。

複数人(マルチユーザー)で使う&リポジトリのルートの設定をする Edit

上記のままでコミットすると、複数人で書き込んでもコミッタ名がすべてsvnになってしまいます。(svnユーザーでコミットしたことになる)

ここでは、svnユーザーのみで複数人のコミッタさんがいる場合、コミッタごとに名前を区別する方法です。
(コミッタを増やすたびに、Unixのシステムのユーザーを増やすのはよくなかろう、というのが前提です)

ユーザー名がfoobarの場合、.ssh/authorized_keys に以下のように書きます。

command="svnserve -t --tunnel-user=foobar -r /home/svn" (以降、公開鍵)

通常のauthorized_keysに書き込むように、
公開鍵の前に command="〜〜" と書くことで、
鍵に当てはまる人は指定のユーザー名でコミットできるようになります。

また、"-r /home/svn"にてリポジトリのルートディレクトリを指定しています。
こうすることで、

svn+ssh://myhost/home/svn/my_repo/ 

と長かったリポジトリURLが

svn+ssh://myhost/my_repo/ 

のように短くできます(やったー!)

リポジトリの運用途中でリポジトリURLの変更する場合は、

などを参考にしてみてください。

※ただし、上記設定だとsshシェルアクセスもできなくなります…。
シェルアクセスするには、鍵を追加するしかないのかな…。

こちらも参考にしてください。

PuTTYの設定 Edit

PUTTYのセッション管理を利用するとsubversionと連携して、
いろいろと自動で働かせることができます。
というか、subversionだけだと、いろいろ面倒なんですよ。
(ユーザー管理とか、ポートとか、毎回パスフレーズ聞いてきたりとか)

今回は、PuTTYごった煮版を利用しました

抑えるポイントは、ごった煮版の機能の ini保存機能を使っちゃダメだという点です。
subversionの内部のPuTTYがレジストリを見ているためです。

基本的な設定は、ssh/PuTTYを見てください。
そのようにして、接続テストを行い、セッション(設定)を保存しておきます。

これで、接続が少し楽になります。

pageantの設定 Edit

ただし、このままでは、接続できても、何かやるたびに、パスフレーズを聞かれるので、pageant.exeを使って、パスフレーズの入力を自動化します。

まず、おもむろに、ごった煮版に含まれる、pageant.exeのショートカットをつくり、プロパティで、引数に、秘密鍵のパスを指定します。
(pageantは、キー設定を覚えてくれないので、明示的に指定しないといけません。面倒ですね)

pageant_shortcut.png

ショートカットを起動すると、パスフレーズが聞かれるので、入力してください。
※「パスフレーズを記憶する」のチェック項目がありますが、保存するとレジストリに復号可能なパスフレーズが記録されてしまいます。面倒かと思いますがチェックを入れないで下さい。(=起動時一度だけパスフレーズの入力が必要)保存するのはセキュリティ上よくありません。puttyの設定を狙うウィルスやマルウェアがあった場合に非常に危険

pageant_phrase.png

あとは、このショートカットをスタートアップにでも放り込んでおくか、ランチャーなどに登録してSubversionを使う前に起動します。

TortoiseSVNで接続 Edit

確認します。

  • PuTTYでsshで接続できる
  • PuTTYでセッション情報(設定)を保存している
  • pageant.exeを起動している

準備は整いました。
ここで、TortoiseSVNで接続してみましょう。

リポジトリを見る Edit

まずは、リポジトリを見てみます。
右クリック→TotoiseSVN→リポジトリブラウザを実行します。
URLを入力する欄がでるので、

svn+ssh://(設定名)/home/svn/hoge/

などと入力します。
設定名は、PuTTYで設定したセッション名です。

すると、以下のような感じで、表示されます。

TotoiseSVN_browser.png

チェックアウトする Edit

次は、リポジトリからファイルを取り出してきます。
適当なディレクトリで、右クリック→SVNチェックアウト、します。

TotoiseSVN_checkout.png

無事に、とりだせましたか?

あとの使い方は、普通にTortoiseSVNを使うのと一緒ですので、ご自由にどうぞヽ( ´ー`)ノ
便利やねー

TortoiseSVNメモも参照


Show recent 10 comments. Go to the comment page.

  • 複数ユーザーでの接続を確認していないので、何とかしたいところ。 -- TOBY 2007-09-25 (火) 17:14:27
  • 管理用のsvnユーザーだけで、複数人で運用する方法を追記しました。 -- TOBY 2009-05-26 (Tue) 16:47:43
Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2010-05-08 Sat 17:34:45 JST (3419d)