这与问题有关,
TFS checkin error - could not find file
“在检查我的项目时,我收到错误:
Could not find file 'C\blah blah blah'.
我有一种感觉,这可能是我删除的旧项目中的文件。
我试过删除我的TFS连接和工作区。
解决方案是:
当TFS在文件系统上不再存在某些更改时,就会发生这种情况。例如,如果您在Visual Studio中添加一些文件(将它们添加到更改列表中),直接从文件系统中删除它们,然后尝试检查更改,它会抱怨它无法找到文件。
要从列表中删除这些更改,您可以打开源代码管理资源管理器(“查看”>“其他Windows”>“源代码管理资源管理器”),然后删除不存在的文件或右键单击有问题的文件并撤消待处理的更改。
您还可以从团队资源管理器中的“待定更改”面板中撤消这些特定更改。
跟进问题:
所以我的问题是,如何在TFS服务器中执行相应的操作?它在我们的团队中不断发生多次。这适用于一个人的桌面,但是TFS服务器中的等效命令行是什么,我可以在构建步骤中加入它吗?
您以错误的方式从TFS中删除文件。 TFS服务器不知道您的本地文件系统,如果您从本地文件夹中删除了该文件仍然存在于TFS上。
这就是问题和错误的原因。如果开发人员想要删除文件并从本地文件夹中删除该文件然后得到错误Could not find file
并解决它,他会“撤消挂起的更改”,因此该文件仍然存在于TFS上,当另一个开发人员在他的文件中看到该文件时系统他也在本地删除它,他也将在办理登机手续时收到错误。
因此,如果开发人员想要从TFS中删除文件,则需要右键单击该文件并“删除”和“签入”。如果他已在本地删除它,他可以执行“删除不存在的文件”和“签入”。现在每个开发人员在“获取最新”时都不会获得该文件。
您还可以使用tf.exe命令中的delete
命令行删除文件:
tf delete [/lock:(none|checkin|checkout)] [/recursive] [/login:username,[password]] itemspec
在构建期间,您可以添加命令行/ Powershell任务并运行qazxsw poi。
您可以使用以下命令从命令行撤消其他人的更改:
tf.exe
您可以致电:获取此信息:
tf vc undo /workspace:workspacename;owner $/project/path/to/file
这允许您从服务器中删除挂起的更改,但不会导致文件在相关开发人员的工作站上还原。
这两个命令都提供了tf vc status $/project/path/to/file /user:*
选项,可以同时撤消特定路径下的多个文件。
如果你正在使用/recursive
。遗憾的是,这并没有进入Visual Studio 2017,也没有适用于Visual Studio 2017的TFS Power Tools。
Visual Studio 2015 or earlier, then you can use the TFS Power Tools to add a "Find by status" option to the Visual Studio Source Control Explorer,允许您查询当前已在服务器工作区中检出的所有文件,并允许您集中撤消它们。
TFS Sidekicks offer a Status Sidekick screen
为了完全避免这个问题,你有几个选择。您可以切换到“本地”工作空间,而不是服务器工作空间。这些自动检测本地更改,并且不在TFS服务器本身上注册更改。 。
您可以从Read more about local workspaces命令行执行删除操作,而不是使用其他工具删除文件和文件夹,例如:
tf vc
tf vc delete $/project/path/to/file
命令也有delete
选项。使用此命令不仅会更新本地文件夹,还会更新服务器工作区。