0

私は自分の仕事でsvnを使ってより良い「作業慣行」を実装する過程にあります。数年前からすでにsvnを使用していますが、容量の20%で使用していると思います。ソースコードのバージョン管理に使用しますが、タグやブランチの概念は使用しません。

将来的には、リビジョンまたはリリースごとに、タグを使用してアプリケーションコードのスナップショットを保持できるようにしたいと考えています。これが私が最良の戦略の方向性を見つけるのに役立つ記事ですこれも私にいくらかの理解を与えますが、私にもっと多くの質問を残します。

これは私が従いたいパターンです:

  • チームは常にトランクに取り組んでいます。
  • トランクは、すべてのリビジョンとすべてのリリースでタグ付けされているため、任意のバージョンのスナップショットを取得できます。
  • タグ付け後も、チームはトランクの作業を続けます。
  • チームが試したいことがあれば、コードを分岐し、完了したら変更をトランクにマージします。

問題は、アプリケーションが依存する自家製のフレームワークもあることです。私たちのコンテキストでのタグの助けは、最新バージョンをクライアントに送信することなく、既存のリリースの小さなバグを修正できるようにすることです。トランク内のバージョン。ご想像のとおり、フレームワークはアプリケーションと同じフォルダーのグループに含まれていないため、アプリケーションのリリースにリンクされたフレームワークコードのタグを作成する必要があるのは非常に悲しいことだと思います。フレームワーク自体も、アプリケーション固有の要件なしで変更できることを考慮してください。

このため、以前のリリースのアプリケーションでフレームワークのバグが見つかった場合に、タグを作成して苦痛を軽減するための最善の戦略はどれかわかりません。現在、アプリケーションとは、各アプリケーションソリューションのlibsフォルダーにあるフレームワークのライブラリを含むフレームワークを指します。この場合、あなたはどうしますか?ああ、フレームワークには40万行のコードがあることを示さなければなりません。コピーして貼り付けるソリューションは拒否されます。:)

以前のバージョンにあるバグを修正する必要がある場合、タグをどのように処理できますか?タグ構造でチェックインするたびに、Subversionから通知が届くのはわかっています。タグを使用してブランチを作成し、バグを修正してから、Subversionから通知された場合でも、変更をマージ/チェックインしてタグフォルダーに戻す必要がありますか?

また、DataDynamics.ActiveReportsMindscape.LightSpeedなどの依存関係もあります。これらのアプリケーションは、IDEに統合されているため、VisualStudioにも依存関係があります。これらのIDEプラグインの以前のバージョンを使用する以前のバージョンのバグを修正する必要がある場合、どうすればケースを処理できますか?

最後に、これらすべての質問についてより深く説明するのに役立つ本や記事を送っていただければ幸いです。

どうもありがとうございました。

4

1 に答える 1

1

フレームワークはソフトウェア製品であり、フレームワークのクライアントはそれを使用するアプリケーションです。したがって、フレームワークはアプリケーション自体と同じルールに従う必要があります。

それではシナリオです。アプリケーションのバージョン A3.0 をリリースしました。このバージョンは、フレームワークのバージョン F2.4 を使用します。フレームワークの SVN リポジトリには、F2.4 リリースのタグがあります。SVN リポジトリには、A3.0 リリースのタグがあります。

アプリケーションのクライアントがリリース A3.0 のバグを発見しました。A3.0.1 という名前の新しいブランチを作成し、そこでバグを修正します。フレームワークは、このバグと関係があることに注意してください。したがって、このブランチでアプリケーションのコードを修正し、修正を適切なトランクにマージします。準備が整ったら、リリースを作成して A3.0.1 という名前のタグを作成します。ブランチとタグでは、フレームワークのリリース F2.4 をまだ使用しています。

クライアントは、A3.0.1 で別のバグを発見しました。したがって、このバグを修正するために、A3.0.2 という名前の新しいブランチを作成します。調査の結果、これがフレームワークに関係していることに気付きます。そこで、フレームワーク チームにこのバグの修正を依頼し、バージョン F2.4.1 を提供します。フレームワーク チームでは、ブランチ F2.4.1 を作成してバグを修正します。準備ができたら、F2.4.1 をリリースし、このリリースのタグを作成します。ブランチ A3.0.2 に F2.4.1 を含め、バグが修正されていることを確認し (アプリケーション コードにもいくつかの変更を加える必要がある場合があります)、準備ができたらバージョン A3.0.2 をリリースし、次のタグを作成します。それ。バージョン A3.0.2 は現在、フレームワーク F2.4.1 に依存しています。

VS プラグインに関しては、下位互換性がない場合、古いバージョンを維持する以外に解決策はありません。しかし、私は IDE に依存することはありません。ましてや、IDE の特定のプラグインに依存して、ソフトウェアを作成および構築することはありません。IDE は交換可能であるべきであり、少なくとも IDE に依存しない方法でソフトウェアを構築する必要があります。

于 2012-05-19T16:20:34.323 に答える