Visual Studio 2017,每个TFVC项目1个工作区或1个工作区内的多个TFVC项目?

时间:2017-04-14 00:58:28

标签: visual-studio visual-studio-2015 azure-devops visual-studio-2017 tfvc

我对工作空间和工作文件夹的概念感到有点困惑。我在Source Control Explorer中看到我可以在我的机器上设置多个工作区。我对工作空间的理解基本上是一个包含我所有项目的文件夹(甚至是不相关的项目)。例如,C:\ Projects

我目前有一个名为我的计算机名称的工作区,它指向一个名为C:\ Projects的目录,其中包含多个项目,这些项目都是visual studio online上的项目。例如:DESKTOP-43DDV90P为其中的每个项目都有一个工作文件夹。

vmovsd  (%r10), %xmm0
vaddsd  (%rcx), %xmm0, %xmm0
vmovsd  %xmm0, -32(%rbx,%rbp)
vmovsd  (%r10), %xmm0
vaddsd  (%rcx), %xmm0, %xmm0
vmovsd  %xmm0, -24(%rbx,%rbp)
vmovsd  (%r10), %xmm0
vaddsd  (%rcx), %xmm0, %xmm0
vmovsd  %xmm0, -16(%rbx,%rbp)
vmovsd  (%r10), %xmm0
vaddsd  (%rcx), %xmm0, %xmm0
vmovsd  %xmm0, -8(%rbx,%rbp)
vmovsd  (%r10), %xmm0
vaddsd  (%rcx), %xmm0, %xmm0
vmovsd  %xmm0, (%rbx,%rbp)
vmovsd  (%r10), %xmm0
vaddsd  (%rcx), %xmm0, %xmm0
vmovsd  %xmm0, 8(%rbx,%rbp)
vmovsd  (%r10), %xmm0
vaddsd  (%rcx), %xmm0, %xmm0
vmovsd  %xmm0, 16(%rbx,%rbp)
vmovsd  (%r10), %xmm0
vaddsd  (%rcx), %xmm0, %xmm0
vmovsd  %xmm0, 24(%rbx,%rbp)
addq    $8, %rdx
addq    $64, %rbx
cmpq    %rdx, %rdi
jne LBB0_48    

我想知道这是否是一个正确的假设,或者我是否应该为每个项目创建一个工作区,如下所示:

WORKSPACE: DESKTOP-43DDV90P
Source Control Folder: $/Project1, Local Folder C:\Projects\Project1
Source Control Folder: $/Project2, Local Folder C:\Projects\Project2

当我在源代码管理下使用新的ASP.NET Core Web应用程序完成所有设置时,我的目录结构如下所示:

WORKSPACE: PROJECT1-WS
Source Control Folder: $/Project1, Local Folder C:\Projects\Project1
WORKSPACE: PROJECT2-WS
Source Control Folder: $/Project2, Local Folder C:\Projects\Project2

2 个答案:

答案 0 :(得分:2)

这取决于您的情况,公司政策等...如果工作区中的映射太多,则很难管理,如果没有,工作区就可以。

有关优化的一些文章可以帮助您:

Using multiple workspaces with Visual Studio

Optimize your workspace

答案 1 :(得分:1)

TFS工作区基本上是您的计算机和TFS服务器之间的帐户。它包含一组ServerPath -> Local Path映射,以及有关如何维护工作空间的一些设置(例如权限,文件时间戳行为等)。

通常在处理项目时,您最终会创建分支机构。这是工作空间映射变得相关的时候。如果您没有分支机构,那么您通常只想映射整个代码库 - 即您需要所有来源。但是当你有分支时,你通常一次只想要一个分支。例如,如果我有这个:

Sample repository with Master and FeatureX branches

您可以看到每个分支如何包含同一组文件。如果我在FeatureX分支中开发某些东西,最终我会将它合并到Master分支中。

这是您的问题变得最相关的时候:我是否有一个包含这两个问题的工作区,或者每个分支都有单独的工作区?这是一个偏好的问题。我更喜欢单独的工作区,因为它避免了我在多个分支中进行更改并且只想检查其中一个分支的更改的情况。例如:

Showing changes across multiple branches

我可能没有注意到在一个更大的项目中我修改了两个不同分支的文件。 TFS确实允许这样做,但通常当我在一个分支机构工作时,我不想影响另一个分支机构。可能发生的另一个问题是,如果其中一个包含的更改集跨越多个分支,则在合并更改时TFS有时会出现问题。例如,假设我检查了图中的变化;然后我创建一个新的分支(Feature2);然后我将变更集合并到Feature2中。应该怎么办?是否需要我检入Master或FeatureX的副本?你可以做到这一点,但重点是你也可能陷入一些奇怪的境地。对于多个工作区,我只会看到与该工作区相关的分支的更改:

Sample workspace mapping for FeatureX branch only