Visual Studio创建多个/其他工作区

Bes*_*sie 7 tfs visual-studio tfvc azure-devops visual-studio-2017

从VS2010开始,我开始使用TFS。到那时,我已经创建了自己的TFS服务器(myname.visualstudio.com)。我的问题是,我在TFS网站(带有仪表盘的网站)上创建了一个新项目。然后,当我转到VS2017,并连接到该新项目时,它要求我进行映射并按预期进行操作。我不只是单击“地图并获取”按钮,而是单击高级,以便可以配置所有内容。

在工作空间配置对话框中,我注意到VS将其命名为“ MYPCBLABLA_1”。如果我尝试删除“ _1”,VS会说“ 计算机blablabla上已经存在工作区blablabla ”,并且不允许我使用现有的工作区名称。

为什么这样做呢?我不能只使用1个工作区吗?从我对工作空间的了解来看,它是我的项目的容器,因此是不同的工作空间,不同的项目集。但是他们到底是什么?

附加信息:我不知道这是否有帮助,但是在过去,我曾经对PC进行过多次格式化,但不确定重新格式化后使用VS时是否会影响映射或工作区名称。

jes*_*ing 8

工作空间可能是TFVC中最难理解的功能。您说的很对,它们是从TFVC存储库中隔离不同文件集的一种方式。

很多人为特定项目或一组解决方案配置新的工作空间,但让我们看一下可以详细使用工作空间的一些方式:

  • 修补程序:您可能需要为当前发生的事情创建修补程序,但是现有工作区中有待处理的更改。除了搁置这些更改,而不是对有漏洞的版本执行“获取特定版本”,您还可以创建一个新的工作区来解决此特定问题。完成修复后,您可以继续使用其他工作空间而无需执行任何操作。
  • 实验:您可能需要进行一些主要的重构,重组源代码控制或其他一些影响很大的操作。在新的(临时)工作区中执行此操作可帮助您避免弄乱正常的工作区域。
  • 审阅其他人的更改:在审阅其他人的更改时,您可能希望拥有本地副本,以便可以运行,注释和使用其他人的代码。无需将这些更改带到您自己的工作空间中,您可以轻松地将它们带入一个临时工作空间,然后可以安全地将其删除。
  • 在执行其他更改时执行合并:在使用新功能时,可能是某些情况,当需要发布发行版时,已经有一些更改重新合并到另一个分支。为了准备此版本,而无需在当前工作空间中进行更改或覆盖正在进行的工作,通常更容易在临时工作空间中执行此类发布活动,这样您便知道工作总是在确切的版本上完成在源代码管理中。
  • 防止对重要分支的意外更改:通过将生产分支放在单独的工作区中,您不会意外地将诸如Development和Main的更改合并到单个签入中。由于Visual Studio通常会自动选择工作区中所有未决的更改,因此这可能会导致对master / main分支进行意外更改。我写了一个签入策略来防止这些问题,但是拥有单独的工作区是一个更安全的解决方案。
  • 与同一工作站/服务器上的多个开发人员一起工作:在某些组织中,开发人员使用远程桌面到中央强大的服务器进行更改。为了确保每个开发人员都有自己的文件集,每个开发人员都拥有自己的工作区。另一种方法是将工作区设为公共,这允许多个开发人员使用同一工作区文件夹。但这通常会导致各种意外问题。
  • 浏览旧版本的代码:如果您需要将旧版本与新版本进行比较/比较,通常可以摆脱Visual Studio中的文件夹差异视图,但是如果需要进行更彻底的比较,则可能需要在您的TFVC存储库中有2个相同文件夹的副本。创建两个工作区将使您可以在本地磁盘上拥有同一文件夹的两个不同版本。
  • 准备用于合并或标签的特殊版本:您可以合并并标记一组文件的工作空间版本。您可以创建一个工作区,然后用于Get Specific Version获取特定文件的特定版本,这些都可以来自不同的变更集版本。满意后,您可以执行标签或合并或分支操作,以在服务器上存储此特定工作区版本配置。

如您所见,工作区允许您在一台机器上进行并行开发,隔离更改等。

有创造力

如您所见,工作空间是一个非常强大的概念。可用于许多操作。但是您需要彻底理解该概念。许多开发人员并不完全了解什么是工作区以及它们是如何工作的,他们缺少了TFVC的一些最强大的概念。

巩固和清理

在您的情况下,您现在有两个工作区。为了合并这些文件(如果需要),可以从_1文件夹中取消映射文件夹,然后在原始工作区中映射这些相同的文件夹。您还可以_1从TFS服务器删除工作空间,然后更新原始工作空间的映射。

请记住,工作区存储在本地计算机上,但是TFS服务器还具有一个注册表,用于记录谁将哪些TFVC文件夹映射到了哪些工作站。因此,仅从本地磁盘中删除文件是不够的。您需要将这些更改保存到TFS服务器(更改映射后执行get操作后,此操作会自动发生)。

要检查哪些工作空间已注册到TFS服务器上的工作站,请使用:

tf vc workspaces /computer:YOURWORKSTATIONNAME
Run Code Online (Sandbox Code Playgroud)

然后使用删除旧的工作区

// DELETE the local workspace
tf vc workspace /delete:WORKSPACENAME

// DELETE the workspace registration on the TFS server
tf vc workspaces /remove:WORKSPACENAME
Run Code Online (Sandbox Code Playgroud)