4

12月 12

 

Linux-UbuntuでのSubversionのインストールと使い方

subversion

最近GitHubの方に現を抜かしていたせいで、Subversionの使い方を忘れていた自分が居たので使い方をまとめておきます。

環境はLinux-Ubuntuです。

まずはSubversionのインストールから

Subversion:インストール

$ sudo apt-get install subversion subversion-tools libapache2-svn

subversion-toolsはリポジトリのバックアップやファイルのマージ等を行うツール群がパッケージされています。

libapache2-svnはリポジトリをApache2を利用して公開するためのパッケージという事です。

Subversion:設定

インストールが終わったら、Subversionリポジトリをウェブサーバーで公開できるようにApache2の設定をしましょう。

$ sudo vim /etc/apache2/mods-enabled/dav_svn.conf

開いてみるとほぼ全文コメントアウトみたいな状態だと思います。
該当箇所だけコメントアウトを外すのは面倒くさいので、ファイルの一番下に

<Location /svn>
  DAV svn
  SVNParentPath /home/svn
</Location>

を追記してあげるといいと思います。

終わったら設定反映の為にApacheの再起動

$ sudo apache2ctl restart

Subversion:リポジトリの作成

さて設定が終わったので早速リポジトリを作成しましょう。

リポジトリの場所は本来好きな場所に設定する事ができますが、
上の方でApache2のSVN用公開ディレクトリを
SVNParentPath /home/svn
に設定していますのでココにディレクトリを作成し、リポジトリを作ります。

$ sudo mkdir /home/svn/
$ cd /home/svn/
$ sudo svnadmin create test

svnadmin create リポジトリ名
を実行すると自動的にSubversionを使うにあたって必要なファイル郡が作成されます。

Subversionファイル郡のユーザーグループ設定

このままではsudoによりroot権限でリポジトリ「test」を作成してしまった手前、
Apache2の権限ではSubversionファイル郡に触れる事ができません。ので
ユーザーを変更してあげる必要があります。

ちなみにApache2はwww-dataというユーザーで動いていますので~

$ sudo chown -R www-data:www-data test

chown -Rの-Rでディレクトリの中のすべてのディレクトリ、ファイルを一度にユーザー:www-data,グループ:www-dataに変更してしまう事ができます。

後はsvnコマンドのimportやcheckoutオプションを使ってファイルのインポートやチェックアウトが可能になります。

Subversion:運用の参考

参考:インポート

$ cd
$ mkdir test
$ cd test
$ cat > test
aaa
bb
ccc
^D
$ cd ../
$ svn import test/  http://localhost/svn/test/ -m "import test"
追加しています              test/test

参考:チェックアウト

$ svn checkout http://localhost/svn/test
A    test/test
リビジョン 1 をチェックアウトしました。

また、Apache2によってwebserver上にリポジトリが公開されていますので
ブラウザ等を開き、アドレス欄にdomain/svn/リポジトリ名/と入力
(先ほどの例ではdomain/svn/test/になりますね。)
する事でインポートしたファイルの一覧を見ることができるようになっています。

Linux自体から参照する場合は当然、http://localhost/svn/test/に
またIPで示すならばlocalhostを表わす http://127.0.0.1/svn/test/で
リポジトリを参照する事ができます。

Windowsからチェックアウトする時にはTortoiseSVNなどを使ってチェックアウトしてあげるとはかどります。

以上

尚、この記事を書くにあたり
すらすら はてなさんのサイト
を参考にさせていただきました。ありがとうございます。




No comments yet, be the first.

コメントを残す