Visual Studio在编辑时不跟踪更改或从源代码管理中签出文件

时间:2011-03-14 03:44:55

标签: visual-studio visual-studio-2010 version-control tfs

我是TFS的新手。在我的工作中,我将TFS项目映射到本地目录,执行get,一切都按预期工作。当我在本地副本上编辑文件时,源代码控制会自动将它们检出以进行编辑,并通过挂起的更改窗口跟踪具有挂起更改的文件。然后我只是使用那个窗口全天检查它们。

然而,在家里似乎并没有发生这种情况。我可以访问源代码控制并使用源代码管理资源管理器,已将项目映射到本地目录。这似乎工作正常。但是,当我打开项目并打开文件时,我所做的更改不会自动检出文件。实际上,在我尝试保存更改之前,visual studio甚至没有更改其只读状态;此时它警告我该文件是只读的,并询问我是否希望它尝试覆盖权限并保存。我做,它工作正常。但同样,在挂起的更改窗口中没有更改注册。我有点迷茫。我真正拥有的唯一源代码控制体验是subversion和Visual Studio AnkhSVN插件。

有什么想法吗?我甚至通过双击源代码管理器中的解决方案文件来打开我的解决方案。你会认为它完全清楚我打开的解决方案应该由源代码控制来跟踪。

非常感谢任何帮助。

编辑由于人们似乎对我说“在家”的事实感到困惑,让我澄清一下。网络没有问题。我在VPN上。我可以浏览源代码控制就好了。我已经因各种原因重新安装了所有东西。一切顺利。我只是遇到Visual Studio没有跟踪文件更改并允许它们提交回源代码控制的问题。总结一下:

Visual Studio如何在正确映射后停止跟踪更改,并允许我获取最新信息?我可以从源代码控制更新,我只是无法提交。即使在进行更改后,待处理更改窗口也为空。

请只有那些使用过TFS的人才能对这种行为有所了解。如果你不知道我在说什么,那就别担心。我一直很清楚,任何使用TFS进行源代码控制的人都会理解这个问题。

11 个答案:

答案 0 :(得分:112)

通常,SO是第一个得到体面答案的人,但今晚我认为有人会在几个人的椅子上放置钉子。另一个网站回答了我的问题,而且非常准确。这是答案:

右键单击解决方案节点,然后转到“联机”。由于各种原因,visual studio可以将您的解决方案标记为源控件跟踪,但“离线”。它仍在跟踪幕后的变化,等待您再次上线。执行此操作后,我的待处理更改窗口已填充,一切正常。我认为这是一个简单的设置。

我希望这可以帮助其他人解决同样的问题。

答案 1 :(得分:20)

我在File>下找到了一个有趣的设置。源控制>高级>改变源控制。

如果我将解决方案和项目绑定到我的源代码控制服务器(如果它已经绑定,则首先取消绑定),然后突然它可以正常工作!保存文件会自动检出文件并跟踪更改。

编辑:这似乎是Visual Studio中的一个错误。如果这种解决方法对您有帮助,那么如果您使用Visual Studio版本信息在https://developercommunity.visualstudio.com创建新问题,那将非常棒,以便开发团队可以解决此问题!

答案 2 :(得分:3)

我刚刚找到了如何解决这个问题,当你已经在线时(没有“在线”选项可见)。 实际上,列出了待处理的更改,但它们隐藏在巨大的“评论”部分下方。要查看它们,请增加“待处理更改”标签的高度,并减少“评论”部分的高度:您将看到由不良扩展的VS隐藏的待处理更改列表:)

答案 3 :(得分:2)

在我的情况下,我通过以下步骤解决了问题:

  1. 右键单击解决方案资源管理器中的解决方案文件。
  2. 点击将解决方案添加到源代码管理
  3. 如果您已将文件添加到tfs,请单击忽略文件替换弹出窗口

答案 4 :(得分:2)

进入源代码管理绑定(文件 - >源代码管理 - >更改源代码管理) - 您可能会注意到只有项目被绑定 - 而不是解决方案。选择解决方案,单击“绑定”。

答案 5 :(得分:1)

我像其他人一样得到了“只读”错误。我在我正在编辑的文件旁边看到了一个小红色检查,但是当我去保存时,它要求我保存文件b / c它是只读的。我从不同的版本控制系统移动文件,它们仍然是只读的。但我不认为Git关心像我的旧源控件一样保持文件只读。所以我只是删除了Windows资源管理器中的只读标志,并且很高兴。

答案 6 :(得分:1)

对我来说,解决方案是进入Team Explorer Pending Changes窗口,然后从那里开始办理登机手续。没看到go online选项,我在VS2013上。感谢大家指点!

答案 7 :(得分:1)

我发现我的一个项目实际上根本没有添加到源代码控制中 - 不知何故已经错过了,因此对该项目的任何更改都不会被检出。我右键单击解决方案节点,单击“添加到源代码管理”它警告我有些项目已被跟踪,我选择忽略这些项目,然后继续将缺少的项目添加到源代码管理中。现在结账工作完美。分享,以防它帮助其他人!

答案 8 :(得分:0)

这篇文章的答案/建议都没有帮助我,但是经过数小时的拔毛后我找到了解决问题的方法。

  1. 找到存储库的.git文件夹。
  2. 删除里面的index.lock文件。
  3. 重新启动Visual Studio。
  4. (我使用的是Visual Studio 2017。)

答案 9 :(得分:0)

关闭解决方案。在记事本中打开解决方案文件,然后删除以下部分。

GlobalSection(TeamFoundationVersionControl) = preSolution
        SccNumberOfProjects = 2
        SccEnterpriseProvider = {3CF58AB4-18FA-4F8D-95D4-32DDF27D189R}
        SccTeamFoundationServer = https://serverIP/Project
        SccLocalPath0 = .
        SccProjectUniqueName1 = Ecample\\Example.csproj
        SccProjectName1 = Example
        SccLocalPath1 = Example
EndGlobalSection

然后再次打开解决方案它应该提示绑定,正确绑定。

答案 10 :(得分:-2)

安装2件事:

  1. VS2013团队资源管理器http://www.microsoft.com/en-us/download/details.aspx?id=40776
  2. 安装VS TFS电动工具https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f
  3. 就是这样