バージョン管理システムは、集団の開発のみならず個人利用でも大変便利そうだ。CVSの後継という位置づけのsubversionなるものを使ってみる。cygwin同梱ver.1.0.6を使用した。Windows版バイナリを使用する際にはインストーラつきのものが安全

link *

クライアントプログラム *

使い方 *

基本中の基本 *

ヘルプ *

svn help (arg.)

リポジトリ新規作成 *

svnadmin create (repository)
svnadmin create --fs-type fsfs (repository)

パスの指定 *

file:///(fullpath) <= ローカル
svn://(repository path) <= svnserve経由

svnserveを使うならサービスを起動しておく('file:///'なら準備不要)。

svnserve -d -r /cygdrive/e/for_svn

上記は、svnserveをデーモンモードで起動し、ルートとなるディレクトリを指定している。この時、/cygdrive/e/for_svn/testreposなるリポジトリは

svn ls svn://localhost/testrepos/

などとしてアクセスできる。

基本作業 *

まずはチェックアウト。いずれのコマンドには省略形があり、以下のいずれも可。今後は片方のみ記載する。

svn checkout (repository)
svn co (repository)

そして作業。適宜以下を実行。

svn add (filename) -- ファイルの追加
svn mkdir (dirname) -- ディレクトリ追加 <-- 実際のディレクトリも勝手に作ってくれた
svn mv (file,dirname) -- ファイル・ディレクトリの移動
svn delete (file,dirname) -- ファイル・ディレクトリ削除

さあコミットだ。ログ用エディタを$SVN_EDITORで指定しておく。

svn ci

お疲れさまでした。

こういう事もできないと不便だ *

既存のディレクトリhogeをリポジトリに追加 *

svn import hoge (repository)

再帰的なコミット。この時hoge自身は作成されず、hogeより下の下層のファイル・ディレクトリが指定したリポジトリ(のディレクトリ)に追加されるみたい。

差分 *

svn diff

ログ *

コミット時にログが追加される。-mオプションでコマンドラインから打つもよし、--file オプションで(追加すべき)ログが書かれているファイルを指定するもよし。オプションが無い場合は $SVN_EDITOR で指定されたエディタを起動。両方とも怠ると怒られてコミットできなかった。

ログを見るには

svn log

リビジョンの指定は

svn log -r 3:15    ## -r は --revision の意

とか。

こういう事ができるとより便利 *

svn ls (repository) # リポジトリの中身
svn info (filename, directoryname) # ファイル・ディレクトリ情報
svn status # 作業コピーの変更状況確認
svn revert # 作業コピーの復帰
svn update # 作業コピーを最新のものに更新。

svnserve *

作ったリポジトリのconfディレクトリのsvnserve.confで設定する。

[general]
anon-access = none
auth-access = write
password-db = /path/to/repos/conf/svnusers

最後の行はユーザーの権限設定ファイル。

[users]
username = password

キーワード置換 *

初期状態では

svn propset svn:keywords Id myfile

として、キーワード置換に関するプロパティをファイル毎に設定する必要がある。キーワード一覧は以下(省略系)

Date日時
Revリビジョン
Author編集者
URLURL
Id上のキーワード詰合せ

確かめる時には以下のコマンド

svn propget svn:keywords myfile

Last-modified: Mon, 04 Sep 2006 16:44:24 JST