subversionの使い方


subversion (svn, サブバージョン ) の使い方についてまとめます。subversionサーバの構築方法、Winodws, Linuxクライアントからの使い方、subversionブラウザツールの構築方法について説明します。

Subversion サーバの構築 Linux 編

Redhat系 Linuxにsubversionサーバをインストールする方法は非常に簡単です。私の記憶では2008年頃は非常に構築が面倒でしたが、現在(2014/08/22)久しぶりに構築してみたらビックリする程簡単で衝撃を受けました。

Subversion サーバの構築 Linux 編 – インストール

Subversion サーバのインストールは、以下のyumコマンド1行のみです。

mod_dav_svnをインストールすると自動的にsubversion用の設定ファイルができあがります。/etc/httpd/conf.d/subversion.confという設定ファイルができあがります。

/etc/httpd/conf.d/subversion.confを読むと、LoadModuleで必要なモジュールを読み込む設定が自動的に作成されているのが分かります。

Subversion サーバの構築 Linux 編 – リポジトリの作成

/etc/httpd/conf.d/subversion.confを読むと律儀にリポジトリを作成する手順が書かれています。

それでは手順に沿ってコマンドを投入してみましょう。まずはリポジトリを配置するディレクトリを作成します。以下はsampleという名前のリポジトリを作成する例です。

Subversionのリポジトリを管理するためのファイル群が作成されている事を確認します。

Subversionリポジトリをapacheユーザが読み書きできるよう、適当なパーミッションを与えます。/etc/httpd/conf.d/subversion.confに書かれているhttpd_sys_content_tはSELinuxに関する設定ですので、SELinuxを無効にしている多くの環境では省略可能な設定です。

Subversion サーバの構築 Linux 編 – apacheによる公開

作成したsubversionリポジトリをapacheで公開します。/etc/httpd/conf.d/subversion.confに設定がコメントアウトされた状態で作成済となっていますので、以下のようにLocationディレクティブの一部のコメントアウトを外します。

apacheを再起動し設定を反映させます。

ブラウザに”http://<ip_address>/repos/sample”と入力し、Subversionが公開された事を確認します。

subversion_server_001

Subversion サーバの構築 Linux 編 – Basic 認証

Subversionのようなバージョン管理システムは、誰がどのような変更を行ったか追跡できるようにするのは非常に大切な観点です。

/etc/httpd/conf.d/subversion.confのBasic認証に関する設定の部分をコメントアウトを外します。AuthUserFileの部分は適宜変更して下さい。

AuthUserFileで指定した場所にパスワードファイルを作成します。htpasswdコマンドの説明は省略します。

apacheを再起動し設定を反映させます。

Subversionリポジトリ書き込み時に認証を求められるようになった事を確認します。svnコマンドの使い方については、”Subversion クライアント Linux編”で説明します。

Subversion クライアント Windows 編 tortoisesvn

Windows でリビジョン管理ソフトをグラフィカルに使用する場合は、tortoiseシリーズを使う事が多いです。tortoisesvn, tortoisegit, tortoisehgなどの製品が存在します。

Subversion クライアント Windows 編 tortoisesvn – ダウンロード

tortoisesvnをダウンロードするため、”http://tortoisesvn.net/”をブラウザで開きます。”Download”タブを押下すると、SourceForgeへのリンクが表示されていますので、SorceForgeへのリンクを押下します。

svn_client_win_totoise_001

しばらく待つと、インストーラー(msiファイル)のダウンロードが開始されます。

svn_client_win_totoise_002

Subversion クライアント Windows 編 tortoisesvn – インストール

インストーラー(msiファイル)をダブルクリックし、インストールを開始します。インストーラーの指示に従って”Next”を押下します。特にハマリどころはないと思いますので、詳細な説明は省略します。

svn_client_win_totoise_003

tortoisesvnのインストールが完了すると以下のような画面が表示されます。

svn_client_win_totoise_004

Subversion クライアント Windows 編 tortoisesvn – リポジトリ登録

tortoisesvnでサーバ上のリポジトリを登録(同期)する方法について説明します。リポジトリを登録するフォルダは”C:\svn\sample”とします。

リポジトリを作成するフォルダで右クリックメニューを表示させ、”SVN checkout”を押下します。

svn_client_win_totoise_005

“URL of repository”を入力し、”OK”を押下します。

svn_client_win_totoise_006

リポジトリ登録に関するログが表示され、同期処理が完了すると以下のような画面が表示されます。

svn_client_win_totoise_007

リポジトリが登録されると、以下のようにアイコンに緑色で表示されます。

svn_client_win_totoise_008

Subversion クライアント Windows 編 tortoisesvn – 操作例

tortoisesvnの簡単な操作について説明します。

新規ファイルをリポジトリに登録してみましょう。新規ファイルを作成しても自動的にsvnの管理対象となるわけではありません。管理対象にするには”svn add”という操作を実行する必要があります。tortoisesvnでは、以下の画像のように右クリックメニューで”add”を選択する事によって、SVNリポジトリに加える事ができます。

svn_client_win_totoise_009

変更や追加を行なったファイルは、青や赤のアイコンで表示されます。変更や追加を行ったファイルをリポジトリにアップロードするには、”SVN Commit”を選択します。

svn_client_win_totoise_010

SVNにファイルをアップロードする際は、何らかのコメントを求められます。後から履歴を追いやすくするよう、コメント欄には端的に変更内容を表現します。また、tortoisesvnのcommit画面ではアップロードする対象のファイルを選択する事ができます。作成途中のファイルを他チームメンバーに共有したくない場合は、適宜アップロードするファイルを選択する手法を採用すると良いでしょう。

svn_client_win_totoise_011

ユーザ名とパスワードを入力します。ここで、”Save authentication”を押下すると、ローカルPC上にパスワードが保存され、次回以降の入力を省略する事ができます。

svn_client_win_totoise_012

Subversion クライアント Linux 編

LinuxではコマンドラインでSubversionを操作する事が多いです。また、私の個人的な意見ですが、Windows環境でもトラブルに巻き込まれた時は、コマンドラインSVNを使った方がトラブル原因の切り分けがやりやすいと感じております。

Subversion クライアント Linux 編 – インストール

svnコマンドは、yum install subversionコマンドでインストールする事ができます。基本的なパッケージですので、環境によっては明示的なインストールを行なわなくても既にインストール済である事が多いです。

Subversion クライアント Linux 編 – リポジトリ登録

リポジトリを追加するには、”svn checkout”コマンドを使用します。

Subversion クライアント Linux 編 – 操作例

svnコマンドの操作例を少しだけ紹介します。

subversionの管理対象に追加するには、”svn add”コマンドを使用します。

変更されたファイル一覧を確認するには、”svn status”コマンドを使用します。Mが変更されたファイルで、Aが追加されたファイルを表します。

変更したファイルをsubversionリポジトリにアップロードするには、”svn commit”を使用します。

ファイルの削除や異動を行なうには、svnコマンドを使用します。rm, mvコマンド(Windowsならば、エクスプローラーのドラッグ アンド ドロップ操作)を使用すると、subversionは変更内容を検知できない事に注意して下さい。なるべくrm, mvコマンドは使用しないで下さい。

ファイル削除, 異動の操作例は以下のようになります。”svn remove”コマンドと”svn rename”を使用します。

ファイルを移動するときは、なるべく”svn rename”を使用するようにして下さい。ファイルの削除, 追加を行なうと今までの変更履歴が消えてしまいます。一方、”snv rename”を使用すると、今までの変更履歴が保持されます。

Subversion ブラウザツール WebSVN

SVNリポジトリをtortoisesvnやコマンドラインで操作しても良いですが、ブラウザによるツールもあるとより便利です。subversionをブラウザで閲覧するツールで最も有名なのが、WebSVNです。以下WebSVNの構築方法について説明します。

svn_browse_websvn_001

Subversion ブラウザツール WebSVN – ダウンロード

WebSVNをダウンロードするため、”http://www.websvn.info/”をブラウザで開きます。”Download”, “tar.gz”の順に押下します。

svn_browse_websvn_001

ダウンロードしたファイルを、apacheによる閲覧が可能なディレクトリに展開します。

Subversion ブラウザツール WebSVN – 設定

WebSVNはphpのツールですので、phpをインストールする必要があります。

早速展開したWebSVNを見てみましょう。ブラウザに”http://<ip_address>/websvn-2.3.3/index.php”と入力して下さい。すると、以下のようなメッセージが表示されます。どうやら、include/config.phpというファイルに設定を記述しなければならないようです。

svn_browse_websvn_002

distconfig.phpというサンプルの設定ファイルがありますので、これをconfig.phpという名前でコピーします。

この状態で”http://<ip_address>/websvn-2.3.3/index.php”を閲覧すると、以下のようなメッセージが表示されます。どうやら最小限の設定は、$config->parentPath または $config->addRepositorのようです。

svn_browse_websvn_003

include/config.phpに”$config->parentPath”の設定を加筆します。parentPathにSVNリポジトリが格納されたディレクトリの親(1階層上のディレクトリ)を指定します。

この状態で”http://<ip_address>/websvn-2.3.3/index.php”を閲覧すると、parentPathに格納されたリポジトリの一覧を閲覧する事ができます。

svn_browse_websvn_004

リポジトリ閲覧画面は以下のような感じになっております。

svn_browse_websvn_005

動作確認環境

Subversion サーバの動作確認環境は以下の通りです。

  • 動作確認日 : 2014/10/23
  • CentOS 6.5 64bit ( Sakura VPS )
  • httpd-2.2.15-29.el6
  • subversion-1.6.11-10.el6_5
  • mod_dav_svn-1.6.11-10.el6_5

Linux Subversion クライアントの動作確認環境は以下の通りです。

  • 動作確認日 : 2014/10/23
  • CentOS 6.5 64bit ( Sakura VPS )
  • subversion-1.6.11-10.el6_5

WIndows Subversion クライアントの動作確認環境は以下の通りです。

  • 動作確認日 : 2014/10/23
  • Windows 7 64bit ( レッツノート CF-J10 )
  • TortoiseSVN version 1.8.10

シェアする

  • このエントリーをはてなブックマークに追加

フォローする