SubversionとCCNETの連携

CCNETでバージョン管理ツールにSubversionを使う場合は、ccnet.configでSubversion Source Control Blockを使用する。

例えばsvnserveでユーザー認証によるアクセス権を設定している場合のccnet.configはこんな感じ

<sourcecontrol type="svn">
  <trunkUrl>svn://ccnetserver/projectname/trunk</trunkUrl>
  <workingDirectory>C:\CCNetIntegration\ProjectName.Daily</workingDirectory>
  <autoGetSource>true</autoGetSource>
  <username>administrator</username>
  <password>hoge</password>
</sourcecontrol>

簡単なのだが、注意点が一つだけ。

初回はCCNETのWorking Directoryにtrunkをsvn checkoutで手動チェックアウトする必要がある(亀svnでもいいんだけど)。要するにビルドサーバーのWorking Directoryにローカルコピーが予め存在する状態でないとSubversion Source Control Blockは正常に動作しない。

via:Subversion Source Control Block

#あと、Subversionのコミットメッセージを日本語にしている場合、WebDashboardではメッセージが文字化けしちゃう。

#あとで書いた。
CCNETのSubversion Source Control Blockでは内部でsvn logに--xmlスイッチを使用して変更履歴をXMLで読み込んでパースしているのが原因。 コマンドラインからsvn log --xmlを実行した段階で既に文字化けしてる。