Version control 什么';这是在TFS中存储第三方ISV修补程序、脚本和二进制文件的有效方法

Version control 什么';这是在TFS中存储第三方ISV修补程序、脚本和二进制文件的有效方法,version-control,tfs,Version Control,Tfs,我们主要购买软件,然后在上面写集成和web服务(或者“它们之间”可能更准确)。我们需要收集大量供应商提供的补丁、DLL文件和数据库脚本,这些都是随着时间的推移收集并存储起来的。然后,我们需要将它们部署到dev,然后部署到测试,然后部署到生产环境。有没有人有一个聪明的方法来在TFS项目/文件夹中构造这种类型的数据?TFS可能不是最好的解决方案,但我担心它必须是这个问题的既定方案 示例:按环境划分的项目?按环境划分的分支机构?按日期排列的文件夹?(考虑到像源代码一样对文件本身进行版本控制实际上没有意

我们主要购买软件,然后在上面写集成和web服务(或者“它们之间”可能更准确)。我们需要收集大量供应商提供的补丁、DLL文件和数据库脚本,这些都是随着时间的推移收集并存储起来的。然后,我们需要将它们部署到dev,然后部署到测试,然后部署到生产环境。有没有人有一个聪明的方法来在TFS项目/文件夹中构造这种类型的数据?TFS可能不是最好的解决方案,但我担心它必须是这个问题的既定方案

示例:按环境划分的项目?按环境划分的分支机构?按日期排列的文件夹?(考虑到像源代码一样对文件本身进行版本控制实际上没有意义)


我们希望跟踪这些文件是何时作为解决方案的一部分部署到哪个环境中的,并使返回并查找(例如)x.dll是在12月5日登台时作为项目y的一部分部署的变得简单。诸如此类。

我认为首选的解决方案是将这些外部依赖项版本控制在与您自己的开发并行的自己的目录中,然后引用该目录。然后它将成为任何分支的一部分,如果需要,您可以在开发、测试和生产中拥有这些分支的单独版本。您还可以创建特定的分支,以针对来自任何供应商的补丁测试您的解决方案。例如:

$/Development-Branch
   |+3PP
   ||+Vendor-1
   |||+ Bin
   |||+ ...
   ||+Vendor-2
   | |+...
   |+Our-Project-1
   ||+ ...
   |+Our-Project-2
    |+ ...
$/Test-Branch (based on $Develeopment-Branch version XXX)
   |+3PP
    |+ ...
缺点是这些外部依赖可能会占用很多空间(如果它们很大的话),但现在这应该不是什么大问题,如果供应商自己不真正支持,那么可能很难为它们签入补丁/更新。在不同的版本之间,它们可能会在库等上使用不同的名称,这会使版本控制成为一种痛苦