22

我将 TFS 与 VS2008 和 VS2010 一起使用,在 TFS 集合中我有几个项目。

我已经将 TFS 根映射到本地驱动器以保留 TFS 文件夹结构,并且我已经完成了几个子文件夹的 Get Latests。

我还下载了一个不需要的文件夹,因此我删除了本地文件夹内容,但现在在 TFS 中,我看到该文件夹​​为黑色,并且“最新”是的。如何告诉 TFS 我已经在本地删除了之前下载的文件夹?

4

3 回答 3

24

我认为问题在于您不同意 TFS 关于“最新”的含义。TFS 中的“最新”意味着自从您获得最新版本以来,服务器上没有任何变化。这并不意味着硬盘驱动器上的内容等于服务器上的最新版本。所以 TFS 显示了它应该做什么,请参阅这个问题了解更多信息:为什么 TFS 没有得到最新的得到最新的?

正如 Mbulava 所提到的,对于服务器上您不想在本地硬盘驱动器上拥有的文件夹的预期解决方案是“Cloak”。(右键单击文件夹-> 斗篷)。如果您不希望在硬盘驱动器上有一个文件夹,我建议您使用此解决方案,因为在您解锁它之前永远不会下载它,并且会显示为灰色和“未下载”。

如果您想查看硬盘上的内容和服务器版本之间的差异,您可以使用“比较文件夹”功能。它将显示该文件夹已在硬盘驱动器上删除。

如果您想将文件夹映射并变灰(与您未下载的其他文件夹一样),您可以隐藏它,然后将其解锁,但回答“否”以立即下载它。这相当于一开始就没有下载文件夹。

于 2013-07-31T12:56:25.613 回答
9

Martin Woodward有一个很酷的TFS 热门提示 #11 - 从本地文件系统博客文章中删除源代码控制文件,它可以在不使用伪装的情况下解决这个问题。

您需要获取特定版本,将版本类型更改为变更集,并为变更集编号指定1。他的博客文章详细介绍了为什么会这样。我已经在 Visual Studio 2013、2015 和 2017 的 Team Explorer 中验证了这种行为。

更新:

如果您有一堆文件夹要处理,您可以使用如下命令行将folderName替换为相对文件夹作为客户端 itemspec 或等效的服务器 itempec

tf.exe get folderName /v:1 /recursive
于 2015-09-09T07:26:06.127 回答
0

Mbulava 使用“cloak”的建议会将文件和/或文件夹保留在 TFS 服务器上,但会从您的本地版本和“获取最新版本”请求中删除文件/文件夹。

如果您已从本地目录中删除了文件,然后您希望这些更改出现在您需要转到 TFS 控制器的服务器上,选择您要删除的文件,右键单击并删除文件夹。然后,您需要将待处理的删除更改“签入”到 TFS 服务器。然后 TFS 服务器将删除文件/文件夹。

于 2020-01-09T11:45:33.663 回答