6

私は、TFS 2008(および異なる場合は2010)が、チェンジセット内の一連の変更の詳細をどのように保存および伝達するかを理解しようとしています。

これで、Subversionでホストされているプロジェクトにコミットすると、クライアントはサーバーに差分を送信します。したがって、ファイルを追加して別の行を数行変更すると、「ファイルA.txtを追加し、2行の「A」「B」をB.txtに入力」のように送信されます。これは、差分がうまく元に戻せるので、リビジョンを取り消すことができることを意味します-「ファイルA.txtを削除し、B.txtから2行を取り出します」。gitでも同じだと確信しています。

TFSはこのようにチェンジセットを保存していないように感じます(噂やリビジョンを簡単にロールバックできないという事実などに基づいています)。

私が思うに、これは次のとおりです。チェンジセット内でファイルA、B、Cを変更した場合、実際にチェンジセットに保存されるのは、ファイルA、B、Cのまったく新しいコピーです。差分だけではありません。

私はこの仮定で正しいですか?商用ソフトウェアとして、この情報は入手できないと信じていましたが、グーグルでは何も生成されなかったので、聞いてみようと思いました。

当然の結果として:TFSチェンジセットはどこに保存されますか?SQLサーバーが一部のストレージに使用されていることを知っています...変更セットもありますか?

現在TFS2008を使用していますが、アップグレードの計画があると思うので、2010年の答えを知っておくと便利です。

4

1 に答える 1

11

TFSは、すべての変更セットデータをSQLServerデータベースに格納します。最新のチェンジセットのコード全体を保存します。次に、前のバージョンとの差分を保存します。すべてをSQLServerに格納することの利点の1つは、トランザクションによって提供される「オールオアナッシング」の保存機能を利用できることです。

保存場所については、このブログエントリhttp://blogs.msdn.com/b/bharry/archive/2009/04/19/team-foundation-server-2010-key-concepts.aspxを確認してください。

于 2011-07-04T14:38:10.263 に答える