0

我设置了我的 TFS 工作区并做了TF GET,它下载了大量的文件,完全符合预期。

然后我想将我的本地副本修剪为我应该使用的文件夹。所以我删除了工作区本地副本上的所有其他内容(不使用 TF 命令,只使用 Windows 和 DOS 命令)

其中一个目录已添加到我的工作清单中。

如何在不重新下载所有内容的情况下取回该目录?

C:
cd \TFS
TF GET Zebra
(All Files are up to date)

我所有不存在的文件显然与 TF 服务器上的现有文件是最新的。我很困惑怎么FileExists等于FileNotExists

在尝试了这种方法的大约 20 种变体之后,我投降了。

C:
cd \TFS
TF GET /FORCE

它正在下载一吨的东西。据我所知,它正在下载所有内容。有趣的是输出的格式与我的原始格式不同TF GET(但这确实分散了问题的注意力,下面重复了)。

如何让 TFS 仅从 Zebra 文件夹下载当前内容并重新填充它,以便我实际拥有的内容与服务器匹配?

我想一个附带问题 - 如果在不告诉 TFS 的情况下删除文件是清理本地磁盘空间的错误方法,那么我的方法应该是什么?

对不起,如果这个问题像菜鸟一样。但我想当谈到 TFS 时,我实际上是一个菜鸟。

4

1 回答 1

1

使用 TFS2010,您将拥有一个基于服务器的工作区,这意味着服务器存储有关您的工作区的信息。这些信息包括您已经下载了哪些版本的文件。如果您使用命令行或 Windows 资源管理器删除它们,TFS 将无法识别您的更改。如果您随后执行“获取最新”,它会使用您应该(!)拥有的版本检查文件的实际版本。因此,如果没有新内容,TFS 不会向您发送任何内容,因为它应该已经存在。

您可以使用 force 选项,因此无论您的工作区中已有什么(或没有),您都将获得最新的文件

C:
cd \TFS
TF GET Zebra /FORCE

您面临的问题是工作空间映射的结果,但这取决于您的工作方式。例如,我是 TFS 管理员,所以我为整个 TeamProjectCollection 提供了一个工作区,并且从未进行递归获取最新,我只获取我需要的那些文件/文件夹。你可以对你的 TeamProject 做同样的事情,但是你总是需要对特定文件夹使用 VS 源代码管理资源管理器或命令行,这不是很方便。我建议为您正在工作的分支/文件夹创建一个工作区,并隐藏您不需要的文件夹。在这种情况下,您可以在根目录上执行 GetLastest,但仍然只能获取您感兴趣的文件。

于 2013-03-20T14:54:30.840 回答