Subversion
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| 開発元: | CollabNet, Inc. |
|---|---|
| 最新版: | 1.4.5 / 2007年8月27日 |
| 対応OS: | クロスプラットフォーム |
| 種別: | バージョン管理ソフトウェア |
| ライセンス: | Subversion License |
| 公式サイト: | http://subversion.tigris.org/ |
Subversion(サブバージョン)はプログラムのソースコードなどを管理するバージョン管理システムの一つ。
目次 |
[編集] 概要
広く使われているバージョン管理システムの一つにCVSがある。CVSはよくできているが、ディレクトリの移動の管理やネットワーク対応の点、不可分な更新などでやや難がある。これらCVSの問題点を解決すべく開発されているのがSubversionである。
古くからオープンソースソフトウェアの開発においてはCVSが多く使われているが、最近ではSubversionを利用するオープンソースプロジェクトも急速に増えている。
なお、subversionという単語は、sub + versionではなく、「(国家や社会秩序を)破壊・転覆する」という意味のsubvertの名詞形である。
[編集] 特徴
Subversionの使い方はCVSによく似ている。コマンドラインで使用する際の主要なコマンド名はCVSと一致するように作られているため、クライアントはCVSからの移行がきわめて容易である。
- ディレクトリの移動や削除をサポートしている。このため、ファイル名やソースツリーの構造がはっきりと決まらないうちからバージョン管理をすることができる。
- バージョン番号(リビジョン番号)はソースツリー全体に対して振られるため、原則としては誰かがソースツリーのどこかのファイルを更新する度に番号が増えてゆく。(CVSではファイル毎にリビジョン番号がつけられている。)
- 作業ディレクトリ内に、最後にソースレポジトリと同期をとったときのファイルのコピーを持っているため、改編中のファイルの変更部の確認などがソースレポジトリにアクセスする事無く高速に実行できる。また、ファイルの差分送信が効率よく行なわれるため、広域なネットワーク環境で利用したときに快適である。
- SSHによるソースレポジトリとの通信を標準でサポートしている。インターネット経由で利用してもセキュリティを容易に保つ事ができる。
- WebDAVをバックエンドとして使うことができる。つまり、Apache HTTP ServerなどのWebDAVをサポートするHTTPサーバを経由して、WebDAVプロトコルを用いてSubversionサーバとSubversionクライアントが通信するという形態が使える。
[編集] クライアント
クライアントとしては、コマンドラインツールのsvnの他、以下の物がある。
- Windows - TortoiseSVN(エクスプローラ拡張)
- Mac OS X - SvnX
- KDE - KDESvn, KSvn
- Gnome
- クロスプラットフォーム - RapidSVN, WorkBench, eSvn, SmartSVN, sventon
- Webアプリ - FlexySvn
- Java - SVNKit
- Eclipse - Subclipse, Subversive
- VisualStudio - AnkhSVN, VisualSVN
- IntelliJ IDEA - TMate
Eclipseではプラグインをインストールすることでプロジェクトの管理をSubversionで行えるようになる。
その他、subversion.tigris.orgのクライアント一覧で見ることができる。
[編集] 使用例
コマンドラインから使うクライアントsvnの使用例
インポート
$ svn import project_name svn+ssh://dev.example.com/repos/svn/trunk
チェックアウト
$ svn checkout http://svn.collab.net/repos/svn/trunk
作業コピーの更新
$ svn update
作業コピーの状態の表示
$ svn status
変更点の差分を表示
$ svn diff
ファイル README への変更を破棄して元に戻す
$ svn revert README
foo を bar に移動
$ svn move foo bar
コミット
$ svn commit