在TFVC(Visual Studio)中“检出”文件的目的是什么?

问题描述 投票:0回答:1

我是Visual Studio 2019中使用TFVC进行版本控制的新手,我无法理解“签出”选项的作用。我找不到真正的定义和实际用例。特别是,我正在团队中工作。当我编译某个项目时,我需要在两个与不同项目相关的文件夹中复制由先前的构建过程创建的两个dll文件,以替换其旧版本的dll文件。现在,在构建项目之后,他们告诉我我必须签出旧的dll文件并选择它们,然后从Source Control Explorer中单击Check Out,而我只需要复制新的dll文件,用本地工作区中的简单“复制并粘贴”替换旧文件。为什么需要检出那些文件?为什么不能只打开本地工作区,然后直接用“复制并粘贴”替换旧的dll文件?

visual-studio tfs version-control azure-devops tfvc
1个回答
0
投票

我不太了解您团队的工作流程。让我提出一些想法,供您了解您当前的工作流程是否最合适。

TFVC是集中式版本控制。意味着在服务器端有一个“单一事实源”

坦白说,任何需要在源代码管理范围内处理某些文件的开发人员,都必须对如何使用共享文件做出决定。稍微简化一下您在这里拥有的工作流程-不是最好的,也不是唯一的工作流程-可以帮助您弄清楚“检出”文件意味着什么。

  1. 获取最新版本的代码(因为您的版本控制处于集中状态,所以类似“最新版本”之类的东西)可能会导致合并活动。
  2. 在开发环境中使用您的代码版本。
  3. 签入
  4. 代码输入服务器。这又可能导致其他合并活动-更不用说破坏了的版本。
  5. 重复。
  6. 如果遵循此简单的工作流程,您会发现,每当获得最新版本的代码时,您可能会发现其他人对您正在处理的一段代码进行了更改。这意味着您需要合并这些更改。同时,出于相同的原因,每当您将代码“签入”到服务器中时,您可能会发现服务器版本与您的版本之间存在一些差异,这可能会导致新的合并活动。在这种情况下,集中版本控制允许您“ 检出

”文件。这意味着您“拥有”该文件,只有您check in更改,其他任何人都无法在中央存储库中合并其更改。在某些情况下,这可能很好,但是如果您习惯使用分布式版本控制系统(如Git),听起来可能会有些奇怪。

回到您的示例。在开发人员中从TFVC中检入TFVC中的dll是一种常见的做法(但不是很好的做法

)。您可能会签出dll,因为您将要编译代码,并且将拥有“最新版本”。根据您团队的工作方式,这可能不是事实。现在,如果您需要在团队之间共享共享的dll,我建议您设置一种不同的方法(例如将它们存储在某些程序包管理器中)。

问候

© www.soinside.com 2019 - 2024. All rights reserved.