バージョン管理システムは、集団の開発のみならず個人利用でも大変便利そうだ。CVSの後継という位置づけのsubversionなるものを使ってみる。cygwin同梱ver.1.0.6を使用した。Windows版バイナリを使用する際にはインストーラつきのものが安全
 
 *link [#a25bd955]
 -[[svn book(日本語):http://subversion.bluegate.org/doc/book.html]]
 -[[バージョン管理の実装「Subversion」(@IT):http://www.atmarkit.co.jp/flinux/special/webdav/webdav03c.html]]
 -[[誰かのプレゼン:http://ukai.jp/Slides/2003/0521-lw2003/html/index.html]]
 -[[Subversionでバージョン管理:http://www.02.246.ne.jp/~torutk/subversion/intro.html]]
 -[[「おいぬまの覚え書き」からsubversion:http://kazz.homeunix.org/cgi-bin/wiki/subversion.html]]
 
 **クライアントプログラム [#yb090953]
 -[[TortoiseSVN:http://tortoisesvn.tigris.org/]] - エクスプローラに融合する
 -[[RapidSVN:http://rapidsvn.tigris.org/]] - wvWidgetで、見てくれはOSに依存しない
 -[[eSvn:http://esvn.umputun.com/]] - こちらもクロスプラットフォームみたい
 -[[ankhsvn:http://ankhsvn.tigris.org/]] - Visual Studio用
 -[[svn-mode for xyzzy:http://www5d.biglobe.ne.jp/~lostland/xyzzy/svn-mode/svn-mode.html]]
 
 *使い方 [#mde40408]
 **基本中の基本 [#rad6fda3]
 
 ***ヘルプ [#w13039c3]
  svn help (arg.)
 ***リポジトリ新規作成 [#o0b428b2]
  svnadmin create (repository)
  svnadmin create --fs-type fsfs (repository)
 
 
 
 ***パスの指定 [#nd6c3c3b]
  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/
 などとしてアクセスできる。
 
 
 
 **基本作業 [#na7c805b]
 まずはチェックアウト。いずれのコマンドには省略形があり、以下のいずれも可。今後は片方のみ記載する。
  svn checkout (repository)
  svn co (repository)
 そして作業。適宜以下を実行。
  svn add (filename) -- ファイルの追加
  svn mkdir (dirname) -- ディレクトリ追加 <-- 実際のディレクトリも勝手に作ってくれた
  svn mv (file,dirname) -- ファイル・ディレクトリの移動
  svn delete (file,dirname) -- ファイル・ディレクトリ削除
 さあコミットだ。ログ用エディタを$SVN_EDITORで指定しておく。
  svn ci
 お疲れさまでした。
 
 **こういう事もできないと不便だ [#e5febfb0]
 ***既存のディレクトリhogeをリポジトリに追加 [#m2bbc589]
  svn import hoge (repository)
 再帰的なコミット。この時hoge自身は作成されず、hogeより下の下層のファイル・ディレクトリが指定したリポジトリ(のディレクトリ)に追加されるみたい。
 
 ***差分 [#d8eae38a]
  svn diff
 
 ***ログ [#d2f67a62]
 コミット時にログが追加される。-mオプションでコマンドラインから打つもよし、--file オプションで(追加すべき)ログが書かれているファイルを指定するもよし。オプションが無い場合は $SVN_EDITOR で指定されたエディタを起動。両方とも怠ると怒られてコミットできなかった。
 
 ログを見るには
  svn log
 リビジョンの指定は
  svn log -r 3:15    ## -r は --revision の意
 とか。
 
 
 **こういう事ができるとより便利 [#y0872792]
 
  svn ls (repository) # リポジトリの中身
  svn info (filename, directoryname) # ファイル・ディレクトリ情報
  svn status # 作業コピーの変更状況確認
  svn revert # 作業コピーの復帰
  svn update # 作業コピーを最新のものに更新。
 
 **svnserve [#bc0e2eae]
 作ったリポジトリのconfディレクトリのsvnserve.confで設定する。
 
  [general]
  anon-access = none
  auth-access = write
  password-db = /path/to/repos/conf/svnusers
 
 最後の行はユーザーの権限設定ファイル。
 
  [users]
  username = password
 
 **キーワード置換 [#k2c4795a]
 
 初期状態では
  svn propset svn:keywords Id myfile
 として、キーワード置換に関するプロパティをファイル毎に設定する必要がある。キーワード一覧は以下(省略系)
 |Date  | 日時               |
 |Rev   | リビジョン          |
 |Author| 編集者            |
 |URL   | URL                |
 |Id    | 上のキーワード詰合せ |
 
 確かめる時には以下のコマンド
  svn propget svn:keywords myfile