60

プロジェクト (.NET) を開始しようとしていますが、TFS と SVN のどちらにするかを決める必要があります。

私は SVN (亀のクライアント)、CVS、VSS に慣れています。TFS には SVN で利用可能なすべての機能がありますか?

SVN から TFS に切り替えて、価値があると感じた人はいますか?
また、TFS を使用する必要がある場合は、Visual Studio が必要なようです。

[編集]
既に TFS のライセンスを取得しているため、お金は考慮されません。そして、私は TFS と SVN のソース管理機能にもっと興味があります。もちろん、他の機能リストも大歓迎です。

4

16 に答える 16

84

" TFS と SVN を比較することはできません"

SVN : ソース コード バージョン管理システムです
TFS : バージョン管理、リリース管理、要件追跡、ドキュメント発行などを含む本格的なソフトウェア開発管理システムです。

どちらも VS2005 で利用できる IDE 統合アドイン (AnkhSVN、Collabnet のアドインなど) を使用するのに便利なので、それは考慮すべき点ではありません。

選択の基準:
- 予算のないプロジェクトまたは予算の少ないプロジェクトがある場合は、SVN
を選択します。 - バージョン管理システムのみを探している場合は、 SVNを選択します。完全な開発管理を探している場合は、TFS
を選択 します。適切な開発環境を実現するための統合ツール (CruiseControl.Net、NUnit、NCover、FIT) SVNを選択するか、これらすべてのすぐに使用できる実装を探している場合は、TFSを選択します。

于 2009-03-19T08:48:04.640 に答える
32

18 か月前に TFS を使用したところ、バグが多く、遅く、煩わしく、検索条件が非常に限られていることがわかりました。興味がなく、給料が低く、働きすぎた技術者のチームが、Sharepoint などの使用を余儀なくされている製品のように感じました。それがマーケティングが望んでいたものだからです。真剣にそれは犬でした。むしろ SourceSafe を使用したかったのです!

一方、SVN は少し専門的で、IDE の統合は面倒で、混乱することもありますが、ユーザー ベースは膨大で、ほとんどの問題は簡単な SO の質問で解決できます。

Vaultを検討しましたか? よく機能し、それほど高価ではありません。

于 2009-03-19T08:06:04.210 に答える
24

2013 バージョンを使用していて、Git ベースのリポジトリを使用している場合にのみ、TFS をお勧めします。以前のバージョンでは、安定していると考えるにはあまりにも多くの問題に遭遇しました。

  • 一度に複数のファイルを diff ツールに送信することはできません。これは、マージの前に変更を確認したいが利用できない場合に非常に便利です。
  • 一貫性のない機能の可用性。一部の機能は IDE 内からのみ使用できますが、他の部分は Windows エクスプローラーからのみ使用できますが、コマンド ラインからのみ使用できるものもあります。
  • バージョン管理へのファイルの追加は、IDE からは利用できず、Windows Explorer 統合からのみ利用できます。
  • シェルフ セットへのアクセスは、IDE 内からのみ可能であり、Windows エクスプローラの統合を通じては利用できません。
  • 単一の統合インストーラーの欠如。TFS をインストールするだけでは十分ではありません。基本的な機能を利用するには、チーム ツールとパワー ツールもインストールする必要があります。
  • シェルフ セットの機能は統合されません。プライベート ブランチを実行するためのクールな方法は、コードが古くなって動作しなくなることを本質的に保証します。
  • Visual Studio 以外のエディターを使用する必要がある場合は、テキスト ファイルを編集する前に手動でロックを解除する必要があります。
  • Visual Studio が自身で管理しているファイルのロックを解除するのを忘れて、エラーをスローすることがあります。
  • チェックインおよびシェルビング UI は、ファイル システム内に実際に存在するものではなく、TFS に既に追加されているものに基づいてコミットできるファイルをベースにします。これにより、ファイルを見逃すことが非常に簡単になります。(これは、実際には Visual Studio がプロジェクト ファイルを処理する方法に問題がありますが、それ自体が別の不満です)。
  • 前述の問題により、ソースの編集に Microsoft 以外のツールを使用することは不必要に困難です。
  • TFS 構成はソースと共にコミットされます。これは、TFS サーバーを変更すると、すべての履歴の構成が正しくないことを意味します。この動作を上書きする、使用できるデフォルト構成がありますが、明確ではありません。
  • 基本レベル以外では、無視フィルターはサポートされていません。
  • 249 文字を超えるパスを処理できない。
  • ロックが解除されているが編集されていないファイルは、変更されていないにもかかわらず、変更済みとして表示されます。変更されたものとロックされていないものを区別すると、差分がはるかに簡単になります。さらに、壊れたロック解除システム全体を完全に廃止することもできます。
  • Windows エクスプローラーのアイコン オーバーレイは、ファイルが編集されているかどうかを明確に示しません。TFS のすべてのファイルには緑色のコーナーがあり、変更されたファイルにはアイコンの下部に鉛筆が追加されます。変更のために赤いコーナーに切り替えると、アイコンの亀のシステムを見たり使用したりするのがはるかに簡単になります。
  • 古いバージョンの Visual Studio では、新しいバージョンの TFS 内での統合に問題があります。これは、ソース管理に IDE バージョンの依存関係があることを意味します。
  • ユーザー ソリューション ファイルが不要な場合は、既定で含めます。もちろん、これは好みの問題であることは認めます。
  • キャッシュが不適切な場合、ローカル コピーとサーバーの違いが正確に反映されない可能性があります。最新版を入手して、実際に最新版を持っていないことに気付くのは非常にイライラします。
于 2012-05-10T01:42:45.400 に答える
14

さまざまなプロジェクトで SVN を使用してから 1 年半になります。これまでに使用したセットアップ:

  • Visual Studio 用のAnkhSVNクライアント。バージョン 2 以降、ソース管理プロバイダーとしてうまく統合されています。
  • サーバーは、Windows 上のCollabNet Subversion、または Linux 上の DAV を介した SSL + SVN を使用する Apache 2.2 のいずれかです。

これらのセットアップのいずれにも問題はありませんでした。SVN は無料で使い始めやすいので、SVN を使用することを強くお勧めします。また、多くのプロジェクト管理/バグ追跡パッケージが SVN と統合されています (たとえばtracなど)。

于 2009-03-19T09:33:25.950 に答える
12

私はSVNを選びます。以前に開発者の観点から SVN を使用したことがあり、現在は TFS を使用していますが、TFS は苦痛です。TFS は機能が充実しており、単なるバージョン管理ではありませんが、そのバージョン管理はせいぜいずさんです。マージは恐ろしいものであり、TFS に頼ることができないため、多くの人が手動のマージまたはマージ ツールに頼るようになりました。ファイルが行方不明になったり、ローカル システムにダウンロードされなかったりすることがあります。その動作には奇妙な点があり、頭を机にぶつけたくなるでしょう。

そうは言っても、TFS を最大限に活用したい場合、その問題点に対処する意思がある場合は、自動化されたビルドとリリースをセットアップするための優れたツールです。

于 2009-03-19T15:17:00.217 に答える
10

決定する前に、この記事を確認してください:オープン ソース プロジェクトの TFS と Subversion の比較

于 2009-03-19T08:00:59.307 に答える
9

私は両方を使用しましたが、実際には、メイン プロジェクトを TFS から SVN に切り替えました。私のプロジェクトでは、オフラインで匿名のアクセスが非常に貴重だと思います。

一般的に、それらは同等だと思います。あなたが最もよく知っていて、あなたが最も幸せに維持しているものを選ぶだけです. 一方のシステムの特定の機能が、もう一方のシステムの機能を劇的に上回っているとは思いません。

于 2009-03-19T08:04:52.107 に答える
7

あなたがsvnに精通しているなら、私はそれに固執します。Tfs は無料ではなく、単純ではありません。ソース管理だけではありません。あなたが私たちのような .net ショップであり、開発サイクル全体でどの製品を使用するかを決定している場合、それは候補ですが、単純なソース管理ではやり過ぎです。

于 2009-03-19T09:56:28.127 に答える
4

まあ、私にとって、選択は明らかに TFS です:

  • Visual Studio への SVN の統合は控えめに言っても不完全であり (多くの機能は IDE から利用できません)、少しバグがあります (AnkhSVN は確かにそうです) が、TFS の統合は完璧です (これは理にかなっています...)。SVN を使用して (1 か月間) 何度かワークスペース全体を破損させましたが、TFS を使用したことはありません (約 2 年間)。

  • 両方のシステムのソース管理関連の機能はおそらくまったく同等ですが、TFS を使用して IDE から直接アクセスできますが、SVN を使用する場合はTortoiseSVNまたはその他の外部ツールに依存する必要があります。ソリューション エクスプローラー タブで数回クリックするだけで、ほぼすべての TFS タスクにアクセスできます。

  • 複雑なマージの場合でも、TFS を使用するとマージがはるかに簡単になります (たとえば、SVN は <<<<<< と >>>>>>>>> を .csproj ファイルに追加するため、手動で編集して VS から再度開くことができます。)

これらの理由は、SVN よりも TFS を優先するのに十分すぎると思いますが、次のことを追加する必要があります。

  • TFS は単なるソース管理ツールではありません (作業項目、プロジェクト ポータルなどを考えてください)。

    過去に中規模のプロジェクト (コーダー 12 人、テスター 3 人、ビジネス アナリスト 3 人) で使用したことがあり、すべてのタスク (バグ レポート、プロジェクト ドキュメント、ビルド プロセス、等。)

    SVN やその他のサードパーティ ツールを使用して同じことができないと言っているわけではありませんが、すべてが 1 つの製品にうまく統合されていることは間違いなく素晴らしいことです。


公平を期すために、TFS の 2 つの明らかな欠点を次に示します。

  • その価格

  • TFS のインストールは非常に面倒ですが、SVN のインストールは数分で完了します。

    SqlServer 2008 に TFS 2008 をインストールするのは非常に複雑です。TFS を PDC にインストールすることはできません。

    そうは言っても、一度インストールすると、TFS は非常に使いやすくなります (特に、ソース管理システムに慣れていないコーダーにとって)。


現在のプロジェクトでは、SVN から始め、すぐに TFS に切り替えました。できてよかったです。

私が切り替えることにした主な理由は、明らかに SVN の全体的なバグの多い動作です (私はVisualSVNをサーバーとして使用し、AnkhSVNをクライアントとして使用していました)。少なくとも週に 1 回は、不可解な AnkhSVN エラー メッセージに何時間も費やしていました。

今日まで、TFS への切り替えを後悔する理由は 1 つも見つかりませんでした。

于 2009-03-19T08:23:51.703 に答える
3

TFS は単なるソース管理以上のものだと思います。余裕があれば、ぜひ利用することをお勧めします。たとえば、チーム ビルドや作業項目などの使用を開始すると、TFS が開発ライフ サイクル全体を実際に管理できることがわかり、レポート、使いやすさ、洗練された VS 統合、および信頼できるソースを提供するリッチな環境が提供されます。コントロールはすべて 1 つにまとめられます。

サーバー側でいくらかの鉄が必要です。遅いとは思いませんが、VPN 経由で問題なく動作し、オフライン作業をサポートしています。

主な短所は、(サーバー側での) インストール プロセスが面倒で、柔軟性がなく、私の考えでは (私はアプリのパッケージ化と展開が非常に重要な分野の出身です)、SQL Server、Reporting の方法の悪い例です。サービス、Sharepoint、および Web サービスをインストールできます。

于 2009-03-19T09:48:45.757 に答える
2

TFSはSVNからインポートできますが、SVNはTFSからインポートできません。したがって、正当な理由が見つからない場合は、後で気が変わった方が簡単なので、SVNを使用してください。

SVNの最も優れている点の1つは、私が知っているすべてのソースコード管理システムがそこからインポートできることです。そのため、SVNを選択すると非常にリスクの低いオプションになります。

于 2009-03-19T16:43:13.567 に答える
2

私の経験では、SVN 全体がはるかに高速で、痛みがありません。TFS と比較して、全体的にはるかに高速に作業および展開できるようにする XCOPY 展開スクリプトと共に使用しました。

于 2013-08-22T04:09:10.903 に答える
1

TFS 2010 は Windows Vista / 7 クライアント OS にもインストールでき、3 回のクリックで簡単にインストールできることを考慮してください。

于 2010-02-12T10:11:19.730 に答える
1

長所:

  • Visual Studio との統合。Microsoft の技術を完全に活用している場合は、本当にプラスになります。開発用スタック。
  • 自動化されたビルド(他の製品を介して達成可能ですが) は非常にうまく行われています。継続的インテグレーションとゲート チェックイン ビルドは素晴らしい IMO です。

短所:

  • Windows ワークフロー ファウンデーション. 何らかの理由で、TFS の多くの側面をカスタマイズする方法として、Windows Workflow Foundation が選択されました。要するに、Windows ワークフローを理解するには Windows ワークフローに関する本が必要ですが、私には時間がありません。非常に残念なIMO。
  • プロジェクト管理。ワークアイテムの概念は単純だと思いますが、奇妙な点がたくさんあり、戸惑います。それは複雑すぎるIMOです。Trac + SVN の経験があるので、ここでは Trac の方がずっと好きです。繰り返しますが、私の意見です。
于 2011-09-14T13:36:49.610 に答える
1

私は TFS の経験はありませんが、IDE の統合について考えておく必要があります。TFS は明らかにVisual Studio と非常によく統合されています。AnkhSVN は、VS 用の唯一の使用可能な無料プラグインであり、新しいバージョンであっても問題が発生することがよくあります。ただし、VisualSVN は試していません。

于 2009-03-19T08:02:09.180 に答える
0

ツールの機能とその制限を理解していないと、目的のツールが機能しないことになります。要件を理解し、製品マニュアルを少し読んでください。適合性を判断するために利用できる情報がたくさんあります。

SVNの提案者には完全に同意しますが、これはすばらしいツールであるため(大学で何度も使用しています)、StudioでSP1バージョンを使用している場合、TFSはOOTBの状況で一般的に協力的であることがわかりました。 2010年。

同様に、TFSを慣れ親しんだ私たちにとってもう少し口当たりが良く、一般的にSVNタイプのソリューションも好む、いくつかの素敵な小さなプラグインがあり、それらの多くは優れたサポートを備えています。

コードレビュー用のTeamReviewはその一例です。http://teamreview.codeplex.com/ TFSをマルチプラットフォームで使用するためのMSパスウェイ: http : //www.microsoft.com/pathways/teamprise/FAQ.htm

このSOの質問は、TFSアドオンの優れたリソースです。TFSで使用できるアドオン /ユーティリティは何ですか。

賢明な一言ですが、前述のように、TFSはインストールするのが面倒な場合があるため、注意が必要です。以下のルートをたどると、最小限の問題が発生しました。

Studio2008->パッチ適用->Studio2010->パッチ適用->.NET->SQL Server 2008RD/2012->パッチ適用->TFS->パッチ適用

于 2012-01-10T19:45:57.700 に答える