将新文件添加到TFS中的分支

时间:2013-09-23 11:33:52

标签: tfs

我有一个DEV主线,一个生产分支和一个UAT分支,所有这些都在同一个工作区。我向DEV添加了一个新文件,并希望将其添加到UAT,但不是生产。

This MSDN article

说是通过在文件上方的目录级别合并来做到这一点,但是如果我在该目录中有多个更改但只想将一个文件放在一起会发生什么?

我可以通过变更集,日期等来实现,但我希望能够逐个文件地完成它。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:1)

关于TFS的一个重点(对我而言)是Changeset是原子的,即当检查所有涉及相同功能的多个文件的更改时,checkin期间的错误导致整个操作失败(与ClearCase相反,将导致一些文件签入而其他文件不会,导致服务器上的版本不完整)。因此,如果您注意创建仅包含一个功能的变更集,即使它们涉及数百个文件,也很容易将单个功能从分支合并到分支,而不必确定哪些文件包含您的更改并仅合并那些。在现实世界中,当然一个功能将由具有较小更改的多个更改集组成,因此您应为每个功能创建工作项,以将有关该功能的所有更改集分配给。这样,您可以轻松列出需要合并的所有变更集。但我开始絮絮叨叨......

无论如何,正如你正确猜到的,要走的路是合并父目录(甚至整个分支),但只包含包含add的变更集。所有其他更改集都将被忽略,以后可以以相同的方式合并。

也就是说,我只看了我的Visual Studio 2010,它确实允许合并单个文件,就像合并整个目录一样。你试过吗?我想我只是假设你已经做过了;)

答案 1 :(得分:0)

在TFS中,您只能根据分支关系进行合并。你的Dev => Production => UATtf merge /baseless,所以你不能在不经过制作的情况下合并Dev => UAT。

选项:

  1. 不推荐:Merge Dev =>生产,合并生产=> UAT,然后回滚生产。
    为什么不:当您再次整合Dev =>生产时,您会遇到问题。

  2. 对文件Dev => UAT进行无基本合并。我认为Visual Studio在源代码管理资源管理器中没有,但您可以使用{{1}}在“VS2012的开发人员命令提示符”中执行此操作。

  3. 只需编辑UAT中的文件,然后从Dev中接收其内容。

  4. 在2或3中,请注意,一旦将一个分支合并到Production,在合并另一个分支时,您将发生(可能是自动解析的)合并冲突。