3

これが私のユースケースです:

私はプロジェクト XYZ を開始し、そのために作業項目を作成します。チェックインを頻繁に行います。合計で簡単に 10 ~ 20 回です。コードの変更はすべて、コードの読み取りとコードのレビューが行われます。

変更セットは連続していません。他の人が私の変更の間にチェックインしますが、まったく同じファイルに触れる可能性はほとんどありません。

だから...プロジェクトの終わりに、私は「合計差分」に興味があります-プロジェクト全体を完了するために私が1回チェックインしたかのように。理論上、これは計算可能です。ワークアイテムに関連付けられた変更セットのリストから、影響を受けたすべてのファイルのリストを取得します。次に、アルゴリズムは各ファイルの個々の差分を集約し、それらを 1 つに結合できます。他の誰かがファイルの名前を変更したり、非常に密接に変更したり、私と同じ機能を使用したりしたため、純粋な合計差分が計算できない可能性があります。私はその場合...私以外によるそれらの変更も合計差分に含めることができ、その事実について私に警告すると思います。

これは非常に便利だと思いますが、実際に t を実行する方法がわかりません。Visual Studio 2008/2010 (および/または TFS サーバー) で実行できますか? これを行うことができる他のソース管理システムはありますか?

ありがとう。

4

4 に答える 4

3

これを簡単に実行したい場合は、独自のブランチで作業する必要があります。


Mahesh Velaga が別の回答にコメントしたように、表示またはマージ目的で差分情報を生成する機能は、バージョン管理システムによって提供される機能です。連続していない変更セットを選択することで差分を計算できた場合、論理的には、これらの変更を 1 回の操作でマージすることもできます。 ただし、これは TFS ではサポートされていません。 したがって、厳選された差分情報の構築も TFS でサポートされていないのではないかと強く思います。他のバージョン管理システム (git、mercurial、darcs が思い浮かびます) は、このようなものをより多くサポートしている可能性があります。よくわかりません。

TFS バージョン管理フォーラムで彼らの回答を読んだところ、最初にこの作業を行うための独自のブランチを作成することを推奨していると思います。その後、変更セットはそのブランチで連続し、 「総差分」は些細なことです。とにかく独立した機能に取り組んでいるように聞こえるので (そうでなければ、変更だけの diff は無意味です)、バージョン管理システムが TFS であるか他のものであるかに関係なく、独立したブランチを持つことを検討する必要があります。

別の方法は、そのようなブランチが事後にどのように見えるかを構築することです。これは、本質的にジム T の答えが提案するものです。あなたのチームが、いわば同じキッチンで働く全員に非常に熱心である場合は、このアプローチを好むかもしれません. しかし、すでにお気づきのように、物事はそのように乱雑になる可能性があります.

于 2010-04-25T06:06:15.630 に答える
3

「総差分」を自分で計算できます。最初のコミットの直前にリビジョンからプロジェクトのブランチを作成し、すべての変更セットをそれにマージします。

一般的なケースでは、これは実際には計算可能なものではないと思います。このように自動的にマージできるのは、連続した変更セットだけです。インターレビングコミットで作業しているファイルに他の人が触れた可能性は「低い」と言っても、それはうまくいきません。この種のことを自動化できるという保証が必要です。

于 2010-04-21T16:03:10.377 に答える
0

2つのワークスペースを作成します。これらの2つのワークスペースで日付または最大の2つのチェンジセットを指定するファイルの特定のバージョンを取得します。次に、比較ツールを使用してフォルダを比較します。Araxisのマージが最適です。

于 2010-04-28T11:49:01.607 に答える
0

各ファイルを単独でコミットするのではなく、チェンジセット(複数のファイルを変更して一度にコミットする)をサポートするツールが必要なようです

sourcesafeとmercurialの この比較を見てください(無料で、Visual Studioと統合するためのツールを見つけることができます)

于 2010-04-28T11:49:17.343 に答える