2

作業中の perforce がありますが、それについての 1 つのことは、ワークフローで非常にうまく機能しているようで、変更セットが保留中です。

新しい保留中の変更セットを作成し、それに変更を割り当て、jira チケットを割り当てます。そこにファイルを棚上げして、他の変更セットに他の変更を加えることができます。次に、チェックイン時に変更セット ID を指定するだけで、これらの変更だけをプッシュできます。

主な分散型リビジョン管理システムで、このような機能を提供しているものはありますか? ほとんどがシェルビングのバリエーションを提供しているように見えますが、変更セットは保留中ですか?

編集 - 明確にするための例:

ファイルAZのプロジェクトがあります。ソースの変更を行う直前に更新を行います。採用する準備ができていない変更が加えられていることに気付いたので、A と B を変更してハックを作成し、ファイル C、D、および E に変更を加えます。

後者の3つだけチェックインして、私が対応しているjiraチケットを添付したいです。p4v では、これは新しい「保留中の変更セット」を作成し、その中に必要なファイルとチケット番号をチェックするだけです。次に、保留中の変更セットをコミットします。その後、次の実行のためにハックを保持するか、元に戻すことができます。

4

3 に答える 3

8

Mercurial には、これとよく似た機能が 2 つあります。最初の古いものはMercurial Queuesと呼ばれ、 Quiltに基づいていますが、Mercurial に統合されています。その本の章は読む価値がありますが、基本的には、プッシュ、ポップ、および編集できる一連のオーバーラップチェンジセットを自由に作成できます。これらは、シェルブ (git または Mercurial) とは異なり、プッシュ/プルが可能であり、実際には別のキュー固有のリポジ​​トリでそれ自体をバージョン管理できます。

これらの線に沿った 2 番目の新しい機能は、フェーズ機能です。publicdraft、またはの各変更セットのフェーズを追跡しますsecret。wiki ページには完全な詳細が含まれていますが、基本的にpublicは、別のレポにプッシュしたもの、draftまだプッシュしていないもの (したがって、人々の履歴を壊すことを気にせずに編集できます) でありprivate、押されたらhg pushhisteditフェーズを Mercurial キューと一緒に使用commit --amendして、変更セットが満足するまでマシンから離れないようにすることができます。

于 2012-12-08T22:49:44.713 に答える
1

Git にはインデックスの概念もあります。インデックスにファイルを追加できます。デフォルトでは、インデックスにあるファイルのみがコミットされます。多数のファイルを変更して、それらの一部をインデックスに配置し、残りをワークスペースに残すことができます。1 つのファイルを変更してインデックスのキューに入れ、ワークスペース内の同じファイルに別の変更を加えることもできます。

于 2012-12-08T23:25:55.687 に答える
1

Git にはstashesの概念がありますが、これは似ています。複数の stash を、その内容の説明と共に持つことができます。主な違いは、スタッシュがローカルにあるのに対し、P4 の保留中の変更リストはサーバー上にあることです。これは、保留中の変更リストを他の誰かが見る必要がある場合に重要です。

于 2012-12-08T23:11:00.247 に答える