6

我最近从 Mecurial 迁移到 TFS 2012 来处理源代码控制。到目前为止,我真的很喜欢它,但我只是停留在它的一个方面,所以我希望这里有人可以帮助我。

假设我有一个名为“Main”的分支,然后我从它分支,称之为“Feature 1”。我可以在“功能 1”中进行修改,然后在这一点上,Mecurial 会在路上画一个岔路口。

如果我随后将我的“功能 1”更改合并到“主要”中,Mecurial 将在视觉上重新加入分叉。然后,我可以对“功能 1”进行更多修改,这将导致另一个分裂,而 Mecurial 再一次给我这个视觉表示。

我在 TFS 中也尝试过,虽然实际的分支和合并很容易,但很难解决的是“功能 1”中的最新更改是否已合并到“主”中,或者是否有未完成的更改被合并。

“跟踪变更集”功能接近并让我知道“功能 1”已在某些时候与“主要”合并,但如果“功能 1”自上次合并以来已被修改,则不会显示。

简而言之,我要问的是,“我如何判断一个分支自上次与父级合并以来是否有任何变化?”

也许我只是停留在 Mecurial 过去做事的方式中,但我真的很感谢上述问题的一些帮助或指导。

4

2 回答 2

3

更新:

在 TFS 中没有视觉指示符,但“TF.exe Merges”命令是最接近该特定功能的命令。TF.exe Merges + Track Changeset + View History 将帮助您实现这一目标。

格式: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)。您可以返回 Main 分支 -> 查看历史记录并检查 Main 中 147 之后是否添加了任何新的变更集。在这种情况下,您将不得不进行合并,否则不会。

说得通?

还有一件事,我建议强制执行合并的开发人员在合并期间使用特定格式的签入注释,例如

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

这也会有所帮助,但不要指望它,因为人们可能不会这样做或会犯错误。

MSDN 链接

于 2013-08-07T15:04:40.730 回答
0

据我所知,没有任何简单的视觉指示器可以显示这一点(尽管如果有的话会很棒)。我相信“跟踪变更集”或只是粗略的比较是您唯一的选择。

于 2013-08-06T22:21:33.713 回答