web-dev-qa-db-ja.com

git-tfとgit-tfsの違いは何ですか?

最近、TFSにうんざりしています。しかし、トンネルの終わりにライトがあると聞いたことがあります。どうやらgit-tfまたはgit-tfsのいずれかを使用して、コードをgitで管理されているかのように扱うことができますが、中央のTFSサーバーとの間でプッシュ/プルができます。

私の主な質問は、これらのどれを使用すべきかわからないということです。 Microsoftによって公式にサポートされているgit-tfがあります。また、ずっと以前から使用されているgit-tfsもあります。これらの違いは何ですか?最初にどちらを試してみる必要がありますか?

71
Earlz

免責事項:I git-tfプロジェクトを開始しました このプロジェクトは、私を頻繁に寄稿することなく非常に有能な手に渡っていますが、これに関する私の意見は絶対に考慮すべきです強く偏っています。 (そして、あなたがWindowsにいると仮定すると、おそらく予期しないことです。)

2つのツールには2つの基本的な違いがあります。

  • git-tfsはWindowsユーザー向けに構築され、.NET TFS SDKの上に記述されました。 TFS SDKはMonoでnot実行されるため、git-tfsがクロスプラットフォームでの使用に適していません。

  • git-tfはクロスプラットフォームユーザー向けに構築され、Java TFS SDKの上に記述されています。したがって、Java = TFS SDK(Windows、Mac、Linux、AIX、HP-UX、Solarisなど)git-tfは、XcodeユーザーがTFSにアクセスできるように明示的に作成されました。

Windowsでは、もちろんどちらでも使用できます。私は必ずしも一方が他方より優れているとは言いません。しかし、私は言う:

  1. Mygit-tfsに関する最大の不満は、Mac OSでは動作しないことです。 git-tfsをクロスプラットフォームにする方法があれば、git-tfはほぼ確実に存在しません。

  2. git-tfsは、場合によってはgit-tfよりもfasterです。パフォーマンスはnot最初のいくつかのリビジョンでの優先事項であり、正確さでした。

  3. git-tfには幅広いプラットフォームサポートマトリックスがあるため、その機能は必然的に制限されます。たとえば、noUIがあります。一方、git-tfsには、通常のTFSチェックインダイアログを開くcheckintoolコマンドがあります。これは、変更を視覚化するのに非常に役立ちます。 (思い出すと、そこから適切な視覚的差分を開くことができます。)

  4. git-tfは、gitリポジトリに直接データを入力し、TFSオブジェクトをgitオブジェクトデータベースに直接ダウンロードすることで機能します。 git-tfsは、隠しフォルダーにTFS作業フォルダーマッピングを作成し、そこからgitリポジトリーを作成することで機能します。ここにはディスクのペナルティがあります。そのため、非常に大きなリポジトリがある場合、これを感じるかもしれません。

  5. git-tfsは、TFSブランチをgitブランチにマップしようとします。多くの人はこれをgit-tfsにとってポジティブだと思うでしょうが、私はしません:gitの分岐モデル(リポジトリレベル)とTFSの分岐モデル(リポジトリ内のフォルダとして表されます)は、最も単純なワークフロー以外で問題を引き起こします。ただし、走行距離は異なる場合があります。

  6. git-tfsは、コミュニティによって積極的に開発されています。 git-tfはコミュニティに採用されていません。

git-tfが悪いと言っているように聞こえたくありません。そうではありません。実際にかなり良いと思います。しかし、それはあなたの最良の選択ではないかもしれません。


更新: git-tfはサポート終了になりました 。マイクロソフトによる保守またはサポートは終了しています。双方向のTFS <-> gitソリューションが必要な場合は、git-tfsをお勧めします。

87
Edward Thomson

免責事項:私はgit-tfsプロジェクトの開発者です

編集:git-tfはもはやメンテナンスされていません...

編集:git-tfs アクティブにメンテナンスされていません もうどちらか。

そして今、git-tfsでのTFS分岐の非常に優れたサポートがあります(既存の分岐を取得し、分岐を作成し、TFSよりも簡単に分岐をマージします... branchコマンドを使用)。

見る:

git-tfsは、おそらく、TFS(VC)からTFS(Git)への移行、必要に応じてワークアイテムの管理、または単純なgitリポジトリを許可する唯一のツールでもあります。

その他の優れた機能...

(そして、それはもっと アクティブ ともっと サポート です)

28
Philippe

このスレッドを見つけた人へ:

Git-TFは2013年以降に更新されなかったため公式に廃止され、現在は明示的にGit-TFS代替として。

Git-TFのサポート終了

Git-TFは寿命に達しました。それ以上の更新はありませんし、マイクロソフトによってサポートされなくなりました。

Microsoft Visual Studio Team Servicesは、Team Foundationバージョン管理リポジトリをGitリポジトリにインポートするための簡単なインポートツールを提供するようになりました。これを使用して、TFVCリポジトリをGitに変換することをお勧めします。

より高度な変換が必要な場合、またはTFVCリポジトリをブリッジしてローカルGitリポジトリを操作する場合は、git-tfsプロジェクトを推奨します

Git-TFは新しいプロジェクトには使用しないでください。ただし、レガシーユーザーのCodeplexアーカイブには残ります。

(セクション 追加 プロジェクトの コードプレックスページ 2017年4月、エドワードトムソン、そのイニシエーターであり、受け入れられた回答の著者)

Git-TFSは積極的に保守されているようです: https://github.com/git-tfs/git-tfs/commits/master

6
J Jones