1. ホーム
  2. git

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

2023-08-16 02:58:57

質問

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

私の主な疑問は、これらのうちのどれを使うべきかわからないということです。Microsoft によって公式にサポートされている git-tf と、もっと長い間存在している git-tfs があります。これらの違いは何でしょうか、また、どちらを最初に試すべきでしょうか。

どのように解決するのですか?

免責事項:私は を開始しました。 git-tf プロジェクト を立ち上げ、現在では私が頻繁に貢献しなくても、プロジェクトは非常に有能な人の手に渡っていますが、これに関する私の意見は絶対に 強く に偏っていると考えてください。 (そして、あなたが Windows を使用していると仮定すれば、おそらく予想外です)。

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

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

  • git-tf は、クロス プラットフォーム ユーザーのために構築され、Java TFS SDK 上で記述されています。 したがって、Java TFS SDK がサポートする場所 (Windows, Mac, Linux, AIX, HP-UX, Solaris, etc...) であればどこでも実行可能です。 git-tf は、Xcode ユーザーが TFS にアクセスできるようにするために明示的に作成されました。

Windows では、もちろん、どちらかを使用することができます。 私は、必ずしもどちらが優れていると言うつもりはありません。 しかし、私は言います。

  1. 私の に関する最大の不満は git-tfs の最大の不満は、Mac OS 上で動作しないことです。 もし git-tfs をクロスプラットフォーム化する方法があれば git-tf はほぼ間違いなく存在しないでしょう。

  2. git-tfs より速く よりも速い場合があります。 git-tf . パフォーマンスは ではない 最初の数回のリビジョンでは、パフォーマンスが優先されました。

  3. なぜなら git-tf は幅広いプラットフォームのサポートマトリックスを持つため、その機能は必然的に制約されることを意味します。 たとえば はありません。 UIです。 git-tfs は、一方では checkintool コマンドを使用すると、通常の TFS チェックイン ダイアログが表示されます。 これは、変更を視覚化するのに非常に便利です。 (私の記憶では、そこから適切なビジュアル diff を開くことができるなど)。

  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 は寿命に達しました . マイクロソフトによる保守やサポートは終了しています。 私たちは git-tfs をお勧めします。