6

最近、ソース管理を行うために Mecurial から TFS 2012 に移行しました。これまでのところ、私はそれが本当に好きですが、私はそれの1つの側面にこだわっているだけなので、ここの誰かが私を助けてくれることを望んでいました.

「メイン」というブランチがあり、そこから「機能 1」と呼ばれるブランチを作成したとします。私は「機能 1」の修正に取り組むことができ、この時点で Mecurial は分岐点を描くことになります。

次に、「機能 1」の変更を「メイン」にマージすると、Mecurial は視覚的に再びフォークに参加します。次に、「機能 1」にさらに変更を加えると、別の分割が発生し、Mecurial はこれを視覚的に表現します。

私は TFS で同じことを試しました。実際の分岐とマージは非常に簡単ですが、「機能 1」内の最新の変更が「メイン」にマージされているかどうか、または未解決の変更があるかどうかを判断するのは難しいです。合併する。

「変更セットの追跡」機能が近づいてきて、ある時点で「機能 1」が「メイン」とマージされたことを知らせてくれますが、最後のマージ以降に「機能 1」が変更された場合は表示されません。

基本的に私が求めているのは、「最後に親とマージされてからブランチに変更があるかどうかをどのように確認できますか?」ということです。

おそらく、私は Mecurial のやり方にとらわれているだけかもしれませんが、上記の問題について何らかの助けやガイダンスをいただければ幸いです。

4

2 に答える 2

3

アップデート:

TFS にはこれを視覚的に示すインジケーターはありませんが、「TF.exe Merges」コマンドは、その特定の機能に最も近いものです。TF.exe マージ + 変更セットの追跡 + 履歴の表示は、これを実現するのに役立ちます。

フォーマット: tf merges [source] destination [/recursive] [/extended] [/format:(brief|deltailed)] [/login:username, [password]] [/showall]]] [/collection:TeamProjectCollectionUrl]

Visual Studio のコマンド プロンプトを開き、「tf.exe merge /?」と入力します。詳細については。

例:

tf.exe マージ /recursive C:\projects\Main C:\projects\Dev

Changeset   Merged in Changeset   Author     Date
> --------------------------------------------------------   
135         162                   user1     4/13/2013 

146         162                   User2     5/16/2013 

147        167                   User1     6/18/2013

これを実行すると、MAIN ブランチから DEV ブランチにマージされた最後の変更セットが取得されます。マージされた最後の変更セット番号 (この場合は 147) に注意してください。メイン ブランチに戻る -> 履歴を表示し、メインに 147 以降に追加された新しい変更セットがあるかどうかを確認します。その場合、Merge を実行する必要があります。

理にかなっていますか?

また、もう 1 つ提案したいのは、マージを行う開発者に、マージ中のチェックイン コメントに特定の形式を使用するよう強制することです。たとえば、

"******MERGE****** Source branch name, the last changeset etc". 

これも役に立ちますが、人々はそれをしないか、間違いを犯す可能性があるため、当てにしないでください。

MSDN リンク

于 2013-08-07T15:04:40.730 に答える