删除Visual Studio中的文件,TFS无法识别它

时间:2011-08-19 22:17:20

标签: tfs

我是TFS的新手。我使用Visual Studio从TFS检出了一个文件夹,然后使用Windows资源管理器删除了一堆文件/在该文件夹中添加了几个文件(实际上我没有这样做,但是该文件夹有第三方库,我使用了一个安装程序,所有这些变化)。

现在,如果我去Visual Studio并尝试检入该文件夹,我收到此错误:

  

签入:未执行操作

     

找不到文件:/ThirdPartyFolder/aDeletedFile.aspx

我试图按照这篇文章中提出的解决方案,但这没有成功: http://www.woodwardweb.com/tfs_top_tip/tfs_top_tip_11.html

当我执行“获取特定版本”并指定“更改集1”时,它不会像在该博客帖子的屏幕截图中那样以红色显示已删除的文件。此外,当我单击“确定”时,它会显示“待更改 - 冲突”窗口,其中包含已删除的所有文件。即使我选择了“保留本地版本”,当我尝试登记时,我又遇到了同样的错误。

在TFS中是否有办法获取本地版本中的内容并使用我的本地版本文件覆盖服务器中的内容?

我使用Subversion做过类似的操作,这从来都不是问题。希望有人会告诉我如何在TFS中实现这一目标。

3 个答案:

答案 0 :(得分:11)

Team Foundation Server要求您显式挂起这些文件的更改 - 如果您在本地删除文件,则不会显式删除针对Team Foundation Server的删除。这实际上是一个有用的功能 - 服务器根据其对本地文件系统的了解优化它发送给您的数据。也就是说,如果您说“获取最新”,它会知道您当前的版本,并且只会提供更改。如果您正在处理非常大的项目,这可能非常有效。

但是,当其他程序决定在不等待对服务器进行更改的情况下进行更改时,事情可能会有些混乱。幸运的是,TFS能够检测外部所做的更改,而不会明确地等待这些更改。您可以使用TFS客户端的“返回在线”功能。

您需要安装Team Foundation Server Power Tools,然后您只需运行:tfpt online即可检测这些更改并选择要挂接到服务器的更改。

答案 1 :(得分:10)

(VS2012)从TFS“签入”列表中选择丢失的文件,然后右键单击它们并单击“撤消更改”将它们永久地从“签入”列表中排除。

答案 2 :(得分:1)

这是svn和tfs之间的主要区别之一。 Svn在某种程度上与windows shell更加集成,工作文件夹中的每次更改都会影响提交时的服务器。我建议你在tfs UI中执行任何移动删除重命名操作,而不是从shell执行。