MSBuild で CVS からチェックアウト
MSBuild で CVS からチェックアウトを行うタスク探してみたのですが、見当たりませんでした。
MSBuildCommunityTasks には VSS と SVN のみしかなく、他にネット上をさまよってみたのですが、なかなかよさげなものが見つかりません。
仕方が無いので、自作することにしました。
手始めに NAnt ではどうやって CVS からチェックアウトを行っているのかをみてみると C# Cvs library ってのを使ってました。こういうライブラリがしっかりとあるのですね。作者の方に感謝です。
ということで、 NAnt の CVS タスクを参考にして、 MSBuildCommunityTasks の SVN のタスクなんかも見ながら初めての MSBuild カスタムタスクに挑戦してました。それほど難しくもなく、超機能限定(pserve で パスワードが無い認証で checkout のみ)の CVS タスクを作れました。
しかし、CVS クライアントが無いとは正直なところ、かなり意外でした。 CVS は当然あるだろうと勝手に決め付けていたので大分あせりました。やはり時代は Subversion なのでしょうか。というより、 Subversion がいいですね。
ちなみに TortiseCVS の中にある cvs.exe を使って中でコマンドを呼び出すという方法もできました。が、これってライセンス的にどうなのでしょう?? C# Cvs library でも、そのライブラリを使って作成された cvs.exe があって、今回はそれを内部的に呼び出しているのですが、実装されていない機能とかもあるのですよね。なので完全にコマンドを実装しようと思ったら前者の cvs.exe なのですが、ライセンスがよくわからず微妙です。問題なさげならそっちを使おうと思うのですが。