subversionでソース管理

とりあえず、自分の作業マシン(ThinkPadT42)とサーバ(Ubuntu7.10)の間だけのクローズドな環境で使用するためにsubversionを導入してみます。慣れてくれば、apache2のVirtualHostに登録して「http://svn.localhost/」で公開してみるつもり。

インストール

いつものごとく簡単です。

$ sudo apt-get install subversion

以下の特別パッケージがインストールされます:
  libneon26 libsvn1
提案パッケージ:
  subversion-tools db4.4-util patch
以下のパッケージが新たにインストールされます:
  libneon26 libsvn1 subversion
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 1 個。
取得:1 http://jp.archive.ubuntu.com gutsy/main libneon26 0.26.3-1 [122kB]
取得:2 http://jp.archive.ubuntu.com gutsy/main libsvn1 1.4.4dfsg1-1ubuntu3 [602kB]
取得:3 http://jp.archive.ubuntu.com gutsy/main subversion 1.4.4dfsg1-1ubuntu3 [241kB]

libsvn1 (1.4.4dfsg1-1ubuntu3) を設定しています ...
subversion (1.4.4dfsg1-1ubuntu3) を設定しています ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place

これですでに「subversion」のサーバが起動している模様。

ユーザを作る

subversion」を使うためのユーザ「svn」を作ります。

$ sudo adduser svn

Adding user `svn' ...
Adding new group `svn' (1001) ...
Adding new user `svn' (1001) with group `svn' ...
Creating home directory `/home/svn' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ******
Retype new UNIX password: ******
passwd: password updated successfully
Changing the user information for svn
Enter the new value, or press ENTER for the default
        Full Name :
        Room Number :
        Work Phone :
        Home Phone :
        Other []:
Is the information correct? [y/N] y
$ su svn
Password: ******
svn:/home$ 

テスト用リポジトリを作る

こちら(→Ubuntu/subversion - TOBY SOFT wiki)を参考に、まずは言われた通りやってみます。

svn:/home$ cd /home/svn
svn:~$ svnadmin create 2555

ついでにテスト用ファイルも作っておきます。

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

いま作った「~/work/test_import」をリポジトリにインポートしてみます。

svn:~/work/test_import$ svn import . file:///home/svn/2555/ -m "initial import"
Adding         trunk
Adding         trunk/test.txt
Adding         branches
Adding         tags

Committed revision 1.

OKですね。

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

いまのリポジトリの内容を確認してみます。

svn:~/work/test_import$ svn ls -R file:///home/svn/2555/
branches/
tags/
trunk/
trunk/test.txt

ちゃんとインポートしたものが入っています。ではこれを「~/work/test_checkout」にチェックアウトしてみます。

svn:~/work/test_import$ cd ..
svn:~/work$ mkdir test_checkout
svn:~/work$ cd test_checkout
svn:~/work/test_checkout$ svn checkout file:///home/svn/2555/trunk
A    trunk/test.txt
Checked out revision 1.

大丈夫ですね。
次はネットワーク越しにやってみます。

参考

  1. こちら(→Ubuntu/subversion - TOBY SOFT wiki)が激しく参考なります。他の記事も参考にさせていただきまくりです。感謝してます。