Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向TFS中的分支添加新文件_Tfs - Fatal编程技术网

向TFS中的分支添加新文件

向TFS中的分支添加新文件,tfs,Tfs,我有一个开发主线、一个生产分支和一个UAT分支,它们都在同一个工作区中。我向DEV添加了一个新文件,并希望将其添加到UAT中,但不想添加到生产中 表示通过在文件上方的目录级别进行合并,但是如果在该目录中有多个更改,但只希望跨一个文件,会发生什么情况 我可以做它的变更集,日期等,但我想能够做到一个文件一个文件的基础上 有什么方法可以做到这一点吗?关于TFS的一个要点(对我来说)是变更集是原子的,也就是说,当签入多个涉及相同功能的文件时,签入过程中的错误会导致整个操作失败(与ClearCase相反

我有一个开发主线、一个生产分支和一个UAT分支,它们都在同一个工作区中。我向DEV添加了一个新文件,并希望将其添加到UAT中,但不想添加到生产中

表示通过在文件上方的目录级别进行合并,但是如果在该目录中有多个更改,但只希望跨一个文件,会发生什么情况

我可以做它的变更集,日期等,但我想能够做到一个文件一个文件的基础上

有什么方法可以做到这一点吗?

关于TFS的一个要点(对我来说)是变更集是原子的,也就是说,当签入多个涉及相同功能的文件时,签入过程中的错误会导致整个操作失败(与ClearCase相反,ClearCase会导致一些文件被检入,而另一些文件没有被检入,从而导致服务器上的版本不完整)。因此,如果您注意创建只包含一个功能的更改集,则很容易将单个功能从一个分支合并到另一个分支,即使它们涉及数百个文件,而无需找出哪些文件包含您的更改并仅合并这些更改集。在现实世界中,一个功能当然将由多个更改集组成h较小的更改,因此您应该为每个功能创建一个工作项,以将与该功能相关的所有更改集分配给。这样,您可以轻松列出需要合并的所有更改集。但我开始漫谈

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


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

在TFS中,您只能根据分支关系进行合并。您的是
Dev=>Production=>UAT
,因此您不能在不经过生产的情况下合并Dev=>UAT

选项:

  • 不推荐:合并开发=>生产,合并生产=>UAT,然后回滚生产。
    为什么不呢:再次合并整个Dev=>产品时会出现问题

  • 对文件Dev=>UAT进行无基础的合并。我认为VisualStudio在源代码管理资源管理器中没有这个功能,但您可以在“VS2012的开发者命令提示符”中使用
    tf merge/baseless

  • 只需在UAT中编辑文件,并从开发人员那里获取其内容


  • 在2或3中,请注意,一旦您将一个分支合并到生产中,在合并另一个分支时,您将有一个(可能是自动解决的)合并冲突。

    我尝试过,但当我实际在文件上单击“合并”时,我返回了一个错误,声称该文件不存在,或者没有映射或其他什么。您正在使用多个工作区吗?然后,您需要确保在源代码管理资源管理器和afaik Pending Changes窗口中选择了正确的一个。但是我想合并目录可以很好地工作,所以这不应该是问题所在……两个分支都在同一个工作区中(不过这一点很好,我会将其添加到问题中)。如果您收到错误消息,说明文件不存在,请确保您已执行“获取最新信息”在尝试合并之前,在源分支和目标分支上。就源代码管理状态而言,变更集确实是原子的-没有一种状态只有变更集的一部分处于。但是,您可以按文件修订进行合并,这可能由变更集决定(而“合并”UI可以做到这一点),但也可能不是。我知道在一些系统中,如Mercurial和GIT变更集确实是真正的一级对象。我们使用2012进行此合并,因此我们通过MSDEV GUI执行了无基础合并。这是我们多年来处理软件的方式,早在我们开始使用TFS之前。我们只在分支完成后合并修复和特定增强。