2011-08-19 58 views
17

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

现在,如果我去到Visual Studio和尝试该文件夹中来检查,我收到此错误:

Check in: Operation not performed

Could not find file : /ThirdPartyFolder/aDeletedFile.aspx

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

当我做'获取特定版本'并指定'更改集1'时,它不会像在该博客文章的屏幕截图中那样以红色显示已删除的文件。另外,当我点击OK时,它会显示Pending Changes-Conflicts窗口以及所有被删除的文件。尽管我选择了“保留本地版本”,但当我尝试登记时,我又收到同样的错误。

在TFS中有什么方法可以使用本地版本中的内容,并使用本地版本文件写入服务器中的内容?

我已经使用Subversion完成了类似的操作,这从来都不是问题。希望有人会让我知道如何在TFS中实现这一点。

回答

11

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

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

您需要安装Team Foundation Server Power Tools,然后您可以简单地运行:tfpt online来检测这些更改并选择要挂起的服务器。

+2

下一个TFS版本(v11)改变了这一点:https://blogs.msdn.com/b/bharry/archive/2011/08/02/version-control-model-enhancements-in-tfs-11.aspx –

+0

谢谢爱德华!我现在正在安装TFS Power工具,并希望能够解决这个问题。稍后会回复我的经验。 – kthiagar

+0

@Lars,这是一个非常有用的链接。很高兴知道这些更改即将到来 – kthiagar

1

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

+1

它实际上并没有更多的集成 - svn在每次提交之前都会扫描你的本地文件系统。您可以使用联机命令模拟与TFS相同的行为,同样可以扫描文件系统。 –

+0

但TFS仍然不像在TortoiseSVN那样的Windows资源管理器中右键单击上下文菜单,对吗?或者是否存在某处?我会认为这将与VS安装。这正是我所避免的,我相信hsalimi在谈论什么。 TortoiseSVN用户界面更关注于向您展示非版本文件或已删除文件,并将成功提交它所能提供的内容。所以在我看来,从工作流和用户界面的角度来看,TFS仍然有一些成熟的事情要做。 –

11

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

+2

这应该被标记为答案 – user3036342