version-control - TFS 2012 检查分支是否已合并

标签 version-control branching-and-merging

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

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

如果我然后将我的“Feature 1”更改合并到“Main”中,Mecurial 会在视觉上再次加入前叉。然后,我可以对“功能 1”进行更多修改,这将导致另一个 split ,再一次,Mecurial 会给我这个的视觉表示。

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

“Track Changeset”功能即将关闭,它会让我知道“Feature 1”已在某个时候与“Main”合并,但如果“Feature 1”自上次合并以来已被修改,则不会显示。

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

也许我只是坚持 Mecurial 过去做事的方式,但我真的很感激上述问题的一些帮助或指导。

最佳答案

更新:

在 TFS 中没有用于此的视觉指示器,但是“TF.exe 合并”命令是您可以获得该特定功能的最接近的命令。 TF.exe 合并 + 跟踪变更集 + 查看历史记录将帮助您实现这一目标。

格式:
tf 合并 [source] 目的地 [/recursive] [/extended] [/format:(brief|deltailed)] [/login:username, [password]] [/showall]]] [/collection:TeamProjectCollectionUrl]

打开你的 Visual Studio 命令提示符并输入 tf.exe merge/?更多细节。

例子:

tf.exe 合并/递归 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 之后是否添加了任何新变更集。在这种情况下,您将不得不进行合并,否则不会。

说得通?

还有一件事,我建议强制执行合并的开发人员在合并期间使用特定格式的 checkin 注释,例如
"******MERGE****** Source branch name, the last changeset etc". 

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

MSDN LINK

关于version-control - TFS 2012 检查分支是否已合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18080348/

相关文章:

svn - 我应该有 1 个还是多个存储库?

version-control - Mercurial:无需先更改即可创建分支

svn - Subversion 能否正确处理两个方向的合并(主干 <-> 分支)?

mercurial - 从默认获取错误修正到Mercurial中的功能分支

git - 我只是通过不正确地使用 git rebase 破坏了我的工作吗

database - 将更改从开发数据库传输到生产数据库

visual-studio - 如何合并整个 TFS 分支

ssis - 比较 SSIS 包代码...有什么建议吗?

database - 高度规范化数据库中选择表数据的通用版本控制策略

svn - 重构和并发开发分支