我不记得我们是如何从源代码控制中获得这个特定解决方案的。
目前的情况是:
当我通过" Source Control Explorer"探索解决方案时我可以看到它被映射到本地工作区。
当我在Visual Studio中为解决方案更改文件时,这些更改会显示在团队资源管理器中的待处理更改下。
我可以检查这些更改,它们会显示在解决方案的历史记录中。
BUT
当我右键单击解决方案资源管理器中的任何文件时,我得到选项将解决方案添加到源代码管理...
如果我选择此选项,我会收到消息:
项目[blah.sln]已在所选位置的源代码管理下....
我知道我可以通过选择文件>来解决问题。源控制>高级>更改源代码管理,然后选择解决方案中的每个项目并按 Bind 按钮。
我的问题是:
TFS如何跟踪更改但解决方案尚未绑定到源代码管理?
答案 0 :(得分:0)
源代码管理绑定存储在很多地方:
在本地计算机的工作空间缓存中,保留工作空间配置。每次连接到该TFS服务器时都会刷新此数据。默认情况下,这是在您本地的appdata文件夹中:
此工作空间信息包含您的计算机和用户信息以及映射到工作站上本地路径的服务器路径。您可以通过editing your workspace information in Visual studio:
在工作区根目录中,$tf
文件夹会跟踪所有文件,以防您使用本地工作区,Visual Studio可以使用这些文件来检测更改。本地工作区随TFS 2012一起推出,要求您使用Visual Studio 2012或更新版本,TFS 2012或更新版本,并将工作区配置为本地(默认情况下为最近版本的Visual Studio中的新工作区)。
以上是确保即使没有打开解决方案,您也可以使用源代码管理和签入/签出文件。
此外,信息存储在项目文件和解决方案中,以便在Visual Studio中实现更深入的集成。
<PropertyGroup>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</PropertyGroup>
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 2
SccEnterpriseProvider = {xxxxx}
SccTeamFoundationServer = http://some-other-guys-tfs-server/
SccLocalPath0 = .
SccProjectUniqueName1 = xxDemo\\xxDemo.csproj
SccProjectName1 = xxDemo
SccLocalPath1 = xxDemo
EndGlobalSection
在您的情况下,Visual Studio依赖于第一组设置与Source Control进行交互,但缺少第二组。使用Change Sourcecontrol窗口中的“Bind”选项将向解决方案和项目文件添加适当的信息。
由于您已连接到TFS服务器并且工作区映射已同步到您的系统,因此Visual Studio知道包含项目的文件夹使用工作空间映射映射到TFS项目。
当您使用另一个根本不支持TFVC的IDE时,此功能也很有用,您仍然可以使用Visual Studio或命令行与TFS交互并直接在工作区上操作。