1

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

我目前有一个工作空间,称为我的计算机的名称,该工作空间指向一个名为C:\ Projects的目录,该目录中有多个项目,每个项目都是Visual Studio自己的项目线上。例如:DESKTOP-43DDV90P的每个项目都有一个工作文件夹。

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

我想知道这是否是一个正确的假设,或者如果我要创建每个项目一个工作空间像下面这样:

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

当我完成设置的一切了一个新的ASP。在源网络核心的Web应用控制我的目录结构如下所示:

C:\Projects\Project 1 
this contains: 
Project1 (folder vs creates for solution) 
BuildProcessTemplates (folder from vs online) 

C:\Projects\Project 1\Project1 
this folder contains: 
Project1 vs solution file 
Project1 (folder that finally takes you to the project1 site files) 

回答

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

+0

谢谢你的答案。当我完成将工作文件夹映射为项目时,目录结构看起来像这样。 C:\ Projects \ Project1 ...此文件夹中包含BuildProcessTemplates和Project1文件夹。然后,如果您在此处单击进入Project1,您将获得带有VS解决方案的文件夹,最后如果再次单击进入Project1,它会将您带入项目文件。这是针对其中包含ASP.NET Core Web项目的解决方案。是否有意义?我只是觉得外面有一个额外的文件夹,但我想这可能是有道理的。 –

+0

另外,你可以给我一个你做事情的顺序的想法。我首先在visual studio上创建了一个新项目,然后在工作区中为该项目设置服务器 - >本地映射,然后确保我已连接到适当的团队项目,最后点击底部的新解决方案团队资源管理器窗口添加一个新的asp.net核心项目,但添加时,我不检查添加到源代码管理。一旦创建项目,我右键单击解决方案并添加到源代码管理。这看起来正确吗? –

+0

@BlakeRivell我已经更新了我的答案,以显示一个有分支的小项目。这通常是我期望看到的。 BuildProcessTemplates是由TFS自动添加的,然后你有一个文件夹供你的分支机构使用,然后在里面有你的解决方案,项目,你喜欢的任何文件夹结构。 – Jimmy

相关问题