RCSやSCCSの時代からファイルは、バージョン管理しないと不安になります。
cvsからSubversionという流れで、mercurialやgitも試しましたがbazaarをメインにすることに決めました。
bazaar 2.3であれば、センター管理されているSubversionからローカルにブランチをコピーして、ローカルブランチで好きなだけ作業した結果をセンター管理のSubversionにチェックインすることができます。
bazaar 2.3をインストールする
bazaarのサイトからStandalone版2.3をダウンロードします。
Windows版の場合、インストーラでWindows Shell ExtentionとCore Documantation – Japaneseを選択し、ほかはデフォルトでインストールします。
センターリポジトリにSubversionを使う準備
サンプルのSubversionリポジトリは、下記のようになっています。
$ svn ls $REPO/sample/trunk readme.txt $
bazaarのリポジトリを作成してSubversionからブランチをコピーします。
スキーマにsvn+httpsを使うのがポイントです。
C:\tmp>bzr init bzrsvn Created a standalone tree (format: 2a) C:\tmp>cd bzrsvn C:\tmp\bzrsvn>bzr co svn+https://svn.local/svn/svntest/sample/trunk sample-svn Initialising Subversion metadata cache in Application Data\svn-cache. C:\tmp\bzrsvn>dir sample-svn C:\tmp\bzrsvn\sample-svn のディレクトリ 2011/03/07 23:03 <DIR> . 2011/03/07 23:03 <DIR> .. 2011/03/07 23:03 0 readme.txt C:\tmp\bzrsvn>
ローカル作業用のbazaarのブランチを作成します。
C:\tmp\bzrsvn>bzr branch sample-svn sample-local Branched 1 revision(s). C:\tmp\bzrsvn>dir sample-local C:\tmp\bzrsvn\sample-local のディレクトリ 2011/03/07 23:05 <DIR> . 2011/03/07 23:05 <DIR> .. 2011/03/07 23:05 0 readme.txt C:\tmp\bzrsvn>
ローカルの作業
sample-localに作成したブランチを思う存分修正します。
bzr diffやbzr stといったSubversionライクなコマンドを使うことができます。
修正が完了したらコミットします。
C:\tmp\bzrsvn\sample-local>bzr diff === modified file 'readme.txt' --- readme.txt 2011-03-07 13:43:30 +0000 +++ readme.txt 2011-03-07 14:08:30 +0000 @@ -0,0 +1,2 @@ +このファイルをどんどん修正しす。 +この修正は、センターリポジトリには反映されませんが、ローカルのbzrリポジトリにコ ミットされます。 \ No newline at end of file C:\tmp\bzrsvn\sample-local>bzr commit -m "update" Committing to: C:/tmp/bzrsvn/sample-local/ modified readme.txt Committed revision 2. C:\tmp\bzrsvn\sample-local>
ローカルの修正をセンターのSubversionに反映する
ローカルでの作業が終わったらセンターのSubversionにコミットするためにローカルリポジトリをSubversionからチェックアウトしたブランチにマージします。
C:\tmp\bzrsvn\sample-local>cd ..\sample-svn C:\tmp\bzrsvn\sample-svn>bzr merge ..\sample-local M readme.txt All changes applied successfully. C:\tmp\bzrsvn\sample-svn>
最後にSubversionにコミットします。
C:\tmp\bzrsvn\sample-svn>bzr commit -m "update for bzr" Committing to: svn+https://svn.local/svn/svntest/sample/trunk modified readme.txt HTTPS svn.local username: svnuser <https://svn.local:443> Subversion Repository svnuser password: Committed revision 2. C:\tmp\bzrsvn\sample-svn>
Subversionのログ
bzrで記録したコミットログは、Subversionのログとして記録されています。
$ svn ls $REPO/sample/trunk readme.txt $ svn update U trunk/readme.txt リビジョン 3 に更新しました。 $ svn log ------------------------------------------------------------------------ r3 | svnuser | 2011-03-07 23:12:37 +0900 (月, 07 3月 2011) | 1 line update for bzr ------------------------------------------------------------------------ r2 | svnuser | 2011-03-07 22:43:30 +0900 (月, 07 3月 2011) | 1 line update ------------------------------------------------------------------------ r1 | svnuser | 2011-03-07 22:42:23 +0900 (月, 07 3月 2011) | 2 lines create sample directory. ------------------------------------------------------------------------ $
これで、Subversionクライアントを使うことはないでしょう。