Ubiguchi が指摘するように、TFS はバージョン管理製品ではありません。バージョン管理のみを目的として TFS を購入するのは明らかにお金の無駄です。TFS は、アプリケーション ライフサイクル管理のすべての側面を自動化するためのツールの統合スイートです (そして、ほぼ「エンタープライズ」向けです。
また、Ben S の投稿によると、ロックに関するあなたのコメントがわかりません。TFS ではロックはまったく必要ありません。管理者は、TFS を VSS (一部の「愚かな」顧客が要求する機能) のように機能するように構成して、チェックアウト ロックも行うと思われる「チェックアウト時に最新のものを取得」することができます。
しかし、TFS の「通常の」使用を通じて、「チェックアウト」はユーザーにロックの種類を求めるプロンプトを表示します。デフォルトは「なし」である必要があります。ユーザーはチェックアウト (またはチェックイン ロック) を選択できますが、必須ではありません。ロックが必要ない場合は、使用しないでください。
TFS は、さまざまなパフォーマンス上の理由 (get-latest を高速化する) とプロジェクト管理 (どの開発者がファイルをチェックアウトしているか、チェックアウトにどのくらいの時間を費やしているかを確認したい) の両方で、どのユーザーがサーバー上でチェックアウトしたかを追跡します。
私はSVNにあまり詳しくありません(使用したことはありません)-「TFSではマージが悪い」とコメントすることはできません-そして、Ben Sが報告したマージバグにヒットしていません-しかし、私は素晴らしい経験をしましたTFS を使用した分岐とマージの成功。
TFSがまだかなり弱いと私が知っているユースケースの1つは、定期的に「オフライン」になっているユーザー向けです。TFS は、ユーザーがほとんどの時間接続していることを前提とした「サーバー製品」です。オフライン エクスペリエンスは 2008 リリースで改善されましたが (2005 年には悲惨でした)、まだ長い道のりがあります。長時間ネットワークから頻繁に切断する必要がある (または望んでいる) 開発者がいる場合は、SVN を使用する方がよいでしょう。
TFS を使用している SVN ファンが考慮すべきもう 1 つの機能は、ユーザーが TortiseSVN を使用して TFS に接続できるようにするコードプレックスであるSVN ブリッジです。私の良き友人であり同僚である私は、それを広範囲に使用し、愛しています。
また、コマンド ラインがないというコメントには驚かされます。
Ben のコメントは、明らかに「Microsoft V1.0」製品であった 2005 リリースの評価に基づいているのではないかと思います。この製品は現在 2.1 で、バージョン 3 は近い将来にリリースされます。