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 将TFVC用作完整版本的工件存储库是否不好?_Tfs_Version Control_Nexus_Artifactory_Tfvc - Fatal编程技术网

Tfs 将TFVC用作完整版本的工件存储库是否不好?

Tfs 将TFVC用作完整版本的工件存储库是否不好?,tfs,version-control,nexus,artifactory,tfvc,Tfs,Version Control,Nexus,Artifactory,Tfvc,我在一家公司工作,在那里我们将大量不同应用程序的构建输出(工件,每一个都来自不同的技术)存储到TFVC中,然后从我们的存储库存储到我们的环境服务器。我一直在调查工件库,以使我们不必为这些输出使用TFVC。在收集需求时,有人问我为什么要寻找替代方案。在阅读的文档中,我发现: 可以使用Team Foundation版本控制(TFVC)从小型到大型项目进行缩放,并且通过使用服务器工作区,可以扩展到每个分支和大二进制文件的数百万个文件的非常大的代码库。 我不能诚实地回答为什么我们应该在TFVC上使用工件

我在一家公司工作,在那里我们将大量不同应用程序的构建输出(工件,每一个都来自不同的技术)存储到TFVC中,然后从我们的存储库存储到我们的环境服务器。我一直在调查工件库,以使我们不必为这些输出使用TFVC。在收集需求时,有人问我为什么要寻找替代方案。在阅读的文档中,我发现:

可以使用Team Foundation版本控制(TFVC)从小型到大型项目进行缩放,并且通过使用服务器工作区,可以扩展到每个分支和大二进制文件的数百万个文件的非常大的代码库。 我不能诚实地回答为什么我们应该在TFVC上使用工件库的问题。它被命名为Team Foundation Server <强>版本控制< /强>,而不是<强>源控件< /强>。我们的部分需求是版本控制和备份。一旦我们实现了完全自动化,我们就不再需要这些存储库了,然而,就目前而言,我们的工件需要某种形式的版本化存储库。 因此,我的问题是:

  • 使用TFVC存储大量二进制文件是否不好 (构建输出)
  • 为什么我要在TFVC上使用工件库

将生成输出复制到放置/共享文件夹时。这将在版本控制之外,但在tfs服务器数据库中存储生成输出

至于使用TFVC存储大量二进制文件(构建输出)是否不好。一般来说,无论好坏,都是根据你的需要

在TFS2012上,仍然可以将生成输出复制到源代码管理文件夹。所以这绝对是TFVC中的支持。

一些限制:如果您将构建输出放入源代码管理,这也意味着您的版本控制存储库中充斥着文件,有时甚至是大文件。当文件被添加到一个版本化的存储库中时,有大量的计算能力被用来计算版本和增量以及其他需要的东西,但是对于一个drop文件夹,我们不需要这些

更糟糕的是,当您想要删除旧文件时,需要调用“销毁””命令,以确保不会让所有这些文件永远占用空间


还可以看看这个博客:

当您将生成输出复制到drop/share文件夹时。这将在版本控制之外,但在tfs服务器数据库中存储生成输出

至于使用TFVC存储大量二进制文件(构建输出)是否不好。一般来说,无论好坏,都是根据你的需要

在TFS2012上,仍然可以将生成输出复制到源代码管理文件夹。所以这绝对是TFVC中的支持。

一些限制:如果您将构建输出放入源代码管理,这也意味着您的版本控制存储库中充斥着文件,有时甚至是大文件。当文件被添加到一个版本化的存储库中时,有大量的计算能力被用来计算版本和增量以及其他需要的东西,但是对于一个drop文件夹,我们不需要这些

更糟糕的是,当您想要删除旧文件时,需要调用“销毁””命令,以确保不会让所有这些文件永远占用空间


还可以看看这个博客:

除了空间/存储库膨胀的问题之外,关键原因是版本控制。如果您为您的二进制文件创建(例如)NuGet软件包,您可以安全地为不同的应用程序引用不同的版本,而不必担心更改会在尚未根据最新版本的依赖关系进行测试的应用程序中引入问题(可能是bug或编译错误)。例如:

您已经将DependencyFoo转换为NuGet包

应用程序A引用版本1.0

应用程序B引用版本1.0

为了支持应用程序A,您对DependencyFoo包进行了一些更改。然后,您可以更新应用程序A引用的版本,而不会影响应用程序B


除此之外,如果您决定从TFVC转换到Git,Git不能很好地处理二进制文件,当然也不应该包含在版本控制中

除了空间/存储库膨胀之外,关键原因是版本控制。如果您为您的二进制文件创建(例如)NuGet软件包,您可以安全地为不同的应用程序引用不同的版本,而不必担心更改会在尚未根据最新版本的依赖关系进行测试的应用程序中引入问题(可能是bug或编译错误)。例如:

您已经将DependencyFoo转换为NuGet包

应用程序A引用版本1.0

应用程序B引用版本1.0

为了支持应用程序A,您对DependencyFoo包进行了一些更改。然后,您可以更新应用程序A引用的版本,而不会影响应用程序B

除此之外,如果您决定从TFVC转换到Git,Git不能很好地处理二进制文件,当然也不应该包含在版本控制中