TFS如何跟踪更改,但解决方案尚未绑定到源代码管理?

时间:2016-05-24 06:12:57

标签: visual-studio-2012 tfs tfvc

我不记得我们是如何从源代码控制中获得这个特定解决方案的。

目前的情况是:

当我通过" Source Control Explorer"探索解决方案时我可以看到它被映射到本地工作区。

当我在Visual Studio中为解决方案更改文件时,这些更改会显示在团队资源管理器中的待处理更改下。

我可以检查这些更改,它们会显示在解决方案的历史记录中。

BUT

当我右键单击解决方案资源管理器中的任何文件时,我得到选项将解决方案添加到源代码管理...

如果我选择此选项,我会收到消息:

  

项目[blah.sln]已在所选位置的源代码管理下....

我知道我可以通过选择文件>来解决问题。源控制>高级>更改源代码管理,然后选择解决方案中的每个项目并按 Bind 按钮。

我的问题是:

TFS如何跟踪更改但解决方案尚未绑定到源代码管理?

1 个答案:

答案 0 :(得分:0)

源代码管理绑定存储在很多地方:

  • 在TFS服务器上保留工作区配置。每当使用团队资源管理器连接到TFS项目时,都会检索您的工作区映射并将其缓存在您的计算机上。因此,Visual Studio将知道哪些文件夹映射到您连接的TFS服务器。
  • 在本地计算机的工作空间缓存中,保留工作空间配置。每次连接到该TFS服务器时都会刷新此数据。默认情况下,这是在您本地的appdata文件夹中: enter image description here
    此工作空间信息包含您的计算机和用户信息以及映射到工作站上本地路径的服务器路径。您可以通过editing your workspace information in Visual studioenter image description here

  • 查看此信息
  • 在工作区根目录中,$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交互并直接在工作区上操作。