4

私はRTCにファイル(それを呼び出します)を持っており、それを変更して、他のいくつかの変更とともにfoo.cチェンジセット()にチェックインしました。CS1次に、そのファイルを再度変更しCS2、他の変更とともに別のチェンジセット()にチェックインしました。

ストリームに配信したいというケースに遭遇CS2しましたが、RTCは、配信するとストリームにギャップが生じるというエラーを表示します(の変更のためCS1)。CS1まだビルドに含めるべきではない変更がいくつか含まれているため、まだすべてを提供したくありません。foo.cinへの最初の変更CS1は、のマイナーな削除であり#include、他には何の影響もありません。

そのギャップを解決する方法はありますか?

パッチの適用に関するRTCのドキュメントにいくつかの内容がありますが、それがどこに行くのかわかりません。
チェンジセットを複数のチェンジセットに分割する方法はありますか?これにより、1つのファイルを配信するだけで済みますか?

4

2 に答える 2

3

問題:CS1はfoo.cを変更し、CS2はさらにfoo.cを変更します。CS2のみを提供したいのですが、RTCはそれがギャップをもたらすと言っています。

解決策:CS2からパッチを作成し、CS1とCS2の両方を一時停止します。次に、パッチを適用し、ワークスペースにマージして、変更をチェックインします。これにより、CS2と同じでCS1に依存しない、さらに別の変更セットCS3が作成されます。これで、CS3を配信できます。

CS3を配信した後、CS2を破棄してCS1を再開できます。これには、CS3とのマージが必要になります。

次に、CS1がCS3に基づいて構築されている状態になり、将来CS1を配信するかどうかを選択できます。

于 2012-05-23T17:44:01.310 に答える
2

2012年以降の更新(およびすべてを配信し、不要なものを元に戻すという元の「回避策」):

このスレッドを参照してください:

RTC 4.0.5では、ギャップのある変更セットを受け入れようとするときに追加のサポートを提供しました(修正をバックポートしようとするときによく発生します)。

機能の非常に簡単な要約では、ギャップのある変更セットを受け入れる場合、一度に1つの変更セットを受け入れ、ギャップを含む変更セットの場合は、新しい変更セットを作成するギャップワークフローに従うことができます(支援付き)トレーサビリティ)、同等の変更が含まれています。
これは、ユーザーが変更セットを「パッチとして」受け入れる必要がないことを意味します。

パッチとして変更セットを適用することには、新しいワークフローと比較して制限があります。
この機能は、RTC4.0.5の「新規および注目すべき」ページに要約されています。

以下は、この機能を示すいくつかのビデオです。

これが変更セットの検索機能です。

https://jazz.net/downloads/pages/rational-team-concert/4.0.5/4.0.5/images/gapeditor.png


RTC 5.0では、ギャップを埋める変更セットがユーザーに表示される「ギャップを埋める」機能が追加されました。これにより、ユーザーはすべての変更セットを受け入れるか、RTC4.0.5で利用可能だったギャップワークフローを続行できます。 。

この機能は、RTC5.0の「新規および注目すべき」ページに要約されています。

ギャップを埋めるために関係するクラスは次のとおりです(RTC 5.0で利用可能):

client side: IWorkspaceConnection.findChangeSetsToAcceptToFillGap(...) 
server side: IScmQueryService.findChangeSetsToAcceptToFillGap(...) 

両方の機能については、「 SCMのギャップ処理の改善」の記事で詳しく説明されています。

https://jazz.net/downloads/pages/rational-team-concert/5.0/5.0/images/missing-change-sets-dialog.png


元の回答(2012)

チェンジセットを分割する方法はありますか?

私はそうは思いません、チェンジセットのマニュアルページを読んでください:

コンポーネント内のファイルまたはフォルダーは、複数のアクティブな変更セットの一部にすることはできません。
ファイルまたはフォルダーがアクティブな変更セットに含まれている場合、そのファイルまたはフォルダーへのすべての変更は、変更セットが最新であるかどうかに関係なく、その変更セットの一部になり、そのファイルまたはフォルダーへの変更は、新しい変更セットに明示的にチェックインできません。それを含むアクティブな変更セットが完了しました。

CS1とCS2にfoo.cがあるということは、CS1が「完了」(本質的には凍結)されていることを意味し、それを分割しようとするのは悪いことです。

パッチソリューションとは、次のことを意味します。

  • CS1のキャンセル
  • CS2へのfoo.cへの追加の変更の追加
  • CS1の変更をやり直す

「ストリームから変更セットを削除するにはどうすればよいですか?」を参照してください。

ストーリー149483は、その面倒なワークフローを強化することであり、ギャップ検出が強化されています(強化24822


OPtimwojは次のように結論付けています。

結局、すべてを配信してから、不要なものを元に戻しました

于 2012-05-22T19:27:38.643 に答える