9

私は(1〜2人の開発者の)私たちのチームのバージョン管理システムを評価しており、マージと分岐の点でTFS2012バージョン管理がMercurialとどのように比較されるのか疑問に思っています。私たちには大規模なチームはなく、私と別の開発者だけかもしれないので、DVCSが提供する堅牢な分岐/マージ機能は必要ないかもしれません。TFS 2012のバージョン管理について、その機能に関して多くの情報を見つけることができませんでした。誰かが私にガイドを教えたり、いくつかの機能を強調したりできますか?VSProfessionalバージョンではスタンドアロンバージョンのTFS2012にしかアクセスできないことに注意してください。

ありがとう

4

4 に答える 4

7

Mercurial 分岐は、1 つの重要な点で TFS と異なります。TFS はブランチをファイル空間の別の場所に保存しますが、Mercurial はそれらを履歴自体に保存します。これにより、分岐とマージに伴う摩擦が大幅に減少します。たとえば、次のことを意味します。

  • ブランチは、最新以外のリビジョンに更新し、その上でコミットするだけで暗黙的に作成されます。
  • ブランチもまた、単純にマージすることによって暗黙的に閉じられます。
  • ブランチは、最初にブランチを作成するのと同じ方法で、暗黙的に再度開くことができます。
  • Mercurial では、ブランチ間を非常に簡単に切り替えることができます。個別のワークスペース マッピングを設定する必要はなく、あるディレクトリから別のディレクトリに変更する必要もありません。
  • ブランチは匿名にすることができます。
  • TFS には「根拠のないマージ」がありますが (これは基本的に、直接の親子関係にないブランチに大きな問題があることを意味します)、Mercurial にはそのようなことはありません。それぞれのブランチがどれほど離れていても、2 つのリビジョン間に共通の起源を見つけることは常に可能です。
  • TortoiseHg のブランチのグラフィカル ビューはプロジェクト履歴と統合されているため、そもそもブランチとマージが実際にどのように機能するかをより簡単に理解できます。

分岐とマージには、小さなチームや単独の開発者にも当てはまるいくつかの利点があります。そのような例の 1 つは、開発中の他の機能がある場合でも、本番システムのバグを修正できることです。もう 1 つの例は、探索的または実験的な開発です。1 つのアプローチがうまくいかない場合は、元のアプローチを参照する必要がある場合に備えて元のアプローチを維持しながら、最初に簡単にロールバックして 2 つ目の別のアプローチを試すことができます。

于 2012-12-13T11:21:42.430 に答える
2

以前の「答え」は少し奇妙です。TFS 2012 での分岐とマージは、GUI とコマンド ラインの両方の実装で、期待どおりに機能します。このトピックをかなり完全にカバーしている優れたドキュメントを次に示します。

ALM レンジャー ガイドを 更新しました

于 2012-11-09T19:30:07.143 に答える
0

序文:

私はTFSとはまったく関係がなく、使用したことはありません。

顔:

最新の「tfs2012」の質問、少なくともいくつか(複数のプロジェクトを複数のクライアントに提供するようにTFSを設定する方法TFS 2012:バイナリをビルドおよびソースコードに関連付ける、TFS 2012複数のチェックアウトを無効にするが機能しない)、問題を示しています。 Mercurialでは質問とは見なしません(外部ツールが追加されることもあります)。しかし、TFSがMercurialのような純粋なSCMではなく、完全なALMツールとして位置付けられていることも理解できます。

JamesMcKayの「TeamFoundationServerはバージョン管理ツールのLotusNotesです」は最新の記事ではありませんが(2011年2月)、少なくともいくつかのステートメントはまだ有効だと思います。

ブランチマージの量は、チームサイズと部分的にのみ相関します。主に、開発のスタイル、開発者の習慣に依存します。

于 2012-10-31T16:37:44.827 に答える
0

小規模なチームの場合は、間違いなく Mercurial を使用してください。

Mercurial は軽量で、使用する特定の開発ワークフローに関して柔軟です。小規模なチームにははるかに適しています。実際、管理上のオーバーヘッドが発生しないため、単独の開発者にも適しています。

マージの必要性については、あなたが暗示しているように、実際には高度な機能ではありません。これは、ほとんどの (すべての?) 非分散型 VCS がうまくいかない非常に基本的な機能です。今は必要ないかもしれませんが、もし必要になったとしても、Mercurial ですぐに使えるようになるでしょう。

于 2012-11-03T23:59:13.987 に答える