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