Subversion 資料一覧

Subversionインストール手順

2010/5/15更新

対応バージョン: 1.6.11

公式サイト

準備

あらかじめインストールしておくもの

Apache 2

mod_dav_svnを使用したい場合

SQLite 3.4.0以降
Berkeley DB 4.0.14以降

リポジトリ管理にBerkeley DBを使用したい場合

関連資料・記事

導入OS

Ubuntu 9.10

インストール

配布ファイル展開

% tar jxvf subversion-1.6.11.tar.bz2
% cd subversion-1.6.11

make,インストール

% ./configure <オプション>
% make
% sudo make install

インストール物 (man,infoは除く)

/usr/local/bin/svn
/usr/local/bin/svnadmin
/usr/local/bin/svndumpfilter
/usr/local/bin/svnlook
/usr/local/bin/svnserve
/usr/local/bin/svnsync
/usr/local/bin/svnversion

/usr/local/lib/libsvn_*

/usr/local/include/subversion-1/*

/usr/local/etc/pear.conf

/usr/local/apache2/modules/mod_dav_svn.so
/usr/local/apache2/modules/mod_authz_svn.so

上記の他、Apacheの設定ファイル/usr/local/apache2/conf/httpd.confに以下の行が追加される。

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

共有ライブラリキャッシュ更新

% sudo ldconfig
% ldconfig -p | grep svn
    libsvn_wc-1.so.0 (libc6) => /usr/local/lib/libsvn_wc-1.so.0
    libsvn_wc-1.so (libc6) => /usr/local/lib/libsvn_wc-1.so
    libsvn_subr-1.so.0 (libc6) => /usr/local/lib/libsvn_subr-1.so.0
    libsvn_subr-1.so (libc6) => /usr/local/lib/libsvn_subr-1.so
:

リポジトリ操作

ここでは/var/svn配下にリポジトリを作成してみる。

まず、リポジトリを初期化する。

% mkdir /var/svn

% svnadmin create /var/svn

リポジトリに登録するファイルを作成する。

ここでは1つのディレクトリと1つのファイルを作成する。

- test
   |
   +- readme.txt
% mkdir test
% echo "read me first." > test/readme.txt

上記ファイルをリポジトリに登録する。

% svn import test file:///var/svn/test -m "first import"
Adding         test/readme.txt

Committed revision 1.

実ファイルをいったん削除し、登録したモジュールをチェックアウトしてみる。

% rm -rf test

% svn checkout file:///var/svn/test work
A    work/readme.txt
Checked out revision 1.

チェックアウトしたファイルに1行追加し、作業前との差分を表示させてみる。

% echo "now editting..." >> work/readme.txt

% svn diff work
Index: work/readme.txt
===================================================================
--- work/readme.txt	(revision 1)
+++ work/readme.txt	(working copy)
@@ -1 +1,2 @@
 read me first.
+now editting...

修正後の状態をコミットしてリポジトリに反映させる。

% svn commit work -m "add line"
Sending        work/readme.txt
Transmitting file data .
Committed revision 2.

コミットし忘れているファイルがあるかどうかは以下のコマンドで確認できる。コマンドを実行して何も表示されなければよい。

% svn status work

今度は新しくファイルを追加してみる。

% echo "second file" > work/second.txt

% svn add work/second.txt
A         work/second.txt

% svn status work
A       work/second.txt

この状態ではまだリポジトリに反映されていないので、コミット操作を行う。

% svn commit work -m "add second file"
Adding         work/second.txt
Transmitting file data .
Committed revision 3.

ファイル名を変更するには以下のようにする。

% svn status work

% svn move work/second.txt work/tmp.txt
A         work/tmp.txt
D         work/second.txt

% svn status work
D       work/second.txt
A  +    work/tmp.txt

% svn commit work -m "chenge file name second.txt to tmp.txt"
Deleting       work/second.txt
Adding         work/tmp.txt

Committed revision 4.

ファイルを削除するには以下のようにする。

% svn delete work/tmp.txt
D         work/tmp.txt

% svn status work
D       work/tmp.txt

% svn commit work -m "delete tmp.txt"
Deleting       work/tmp.txt

Committed revision 5.

リポジトリの登録状況を調べるにはsvnlookコマンドを実行する。

% svnlook info /var/svn
foo
2009-06-15 19:41:56 +0900 (月, 15  6月 2009)
14
delete tmp.txt

% svnlook history /var/svn
REVISION   PATH
--------   ----
       5   /
       4   /
       3   /
       2   /
       1   /
       0   /

% svnlook tree /var/svn
/
 test/
  readme.txt