短い形式の質問とその後の説明パッチを作成し、dotnetアプリケーションのいくつかのバグ修正のためにビルドで変更されたファイルのみを含めたいと思います。パッチは、SVN、Cruisecontrol.net、msbuildを含む継続的インテグレーションプロセスで自動的にビルドされる必要があります。
ここにシナリオがあります。継続的インテグレーションを使用してリモートサーバーで実行される.netアプリケーションを維持したいと考えています。ソースコードはSVNにあり、DEV、QA、PRODの3つの異なるリポジトリがあります。私たちの開発者は、ほぼ毎日新しいバグ修正を行い、最初のテストと満足の後に変更を開発リポジトリにマージします。特定の問題が解決された後、または機能が追加された後のコードは、QAリポジトリにマージされます。QAコードは、QAマシンで手動で作成およびテストされます。QAテストの後、それをPRODにマージします。これにより、QAは、手動で置換または変更する必要のあるファイルの新しいパッチも作成します。次に、パッチがステージングサーバーにデプロイされます。完全になるまでテストされ、パッチが実際のリモートサーバーに展開されます。
継続的インテグレーションを求めて、CruiseControl.netとmsbuildを組み合わせてプロセスを実行しようとしています。このプロセスは、QAビルドからパッチを自動的に生成する必要がある段階まで有効です。パッチが生成されたら、それらをftpサーバーに配置し、そこからステージングサーバーにダウンロードしてテストします。問題、つまり新しいビルドからのパッチの生成には、いくつかの側面があります。アプリケーションのソリューションファイルには多くのプロジェクトがあり、dllはpostbuildイベントを使用してスタートアップアプリのbinフォルダーにコピーされます。したがって、実際のアプリケーションには特定のディレクトリ構造があり、それ自体は、多かれ少なかれ互いに独立している6つのソリューションの組み合わせです。
パッチを作成しようとしている方法は、svnのログを検索して、変更されたファイルを見つけることです。次に、プロジェクト名を見つけて解析しています。次に、アプリケーションのすべてのファイルを含むマッピングファイルを使用して、リリースに含まれる特定の方法で、そのプロジェクトのbinディレクトリからパッチフォルダーにすべてのファイルをコピーします。
ですから、svnとcruisecontrol.netがあれば、パッチを作成するためのはるかに優れた、またはより簡単な方法を誰かが提案できますか?またはそれを行うための他のオープンソースツール。
問題が明確であることを願っています