我想从TFS获取一个文件。在Mercurial的相同情况下,我会做hg cat
。
TFS中是否有hg cat
的等价物?
我正在尝试以下命令行:
tf get $/dev/components/log.zip
但它失败了:
No appropriate mapping exists for $/dev/components/log.zip.
我该怎么做?
答案 0 :(得分:2)
TFS需要工作空间在服务器存储库和本地计算机之间建立映射。如果您已定义包含$/dev/components/log.zip
的工作空间,请在命令行工具中切换到该文件夹。
如果要将文件放到目前所在的文件夹中,则需要创建一个新工作区。这可以在团队资源管理器中完成,也可以使用tf.exe:
完成tf workspace /new logZipWs /collection:http://tfsserver:8080/tfs/DefaultCollection
现在您有了一个工作区,但是您需要将服务器路径映射到本地文件夹:
tf workfold /map $/dev/components . /collection:http://tfsserver:8080/tfs/DefaultCollection /workspace:logZipWs
现在你的命令应该有效。但使用团队资源管理器可以更轻松地创建工作区。
完成后,请确保删除工作区,以便从TFS服务器取消注册(TFS跟踪客户端上服务器和上的工作区):
tf workspace /delete logZipWs /collection:http://tfsserver:8080/tfs/DefaultCollection
答案 1 :(得分:1)
您可以使用view
子命令在不设置工作区的情况下下载文件。
tf view $/dev/components/log.zip /output:log.zip
不幸的是,虽然命令支持/recursive
选项,但递归检索并不实用。如果您尝试使用它,则实际上将使用给定文件类型的默认程序打开所有文件,而不是简单地保存到目录中。但是为了获得一个特定的文件,它可以正常工作。
答案 2 :(得分:1)
您可能还想查看Neno Loje's TfsExport tool,它可以将单个文件或整个路径结构从TFVC下载到磁盘。
当您确实采取创建(临时)工作空间的路线时,请确保在完成后将其删除,否则您将使用TFS服务器注册大量工作空间,这些工作空间只会留在数据库中并占用空间并增加升级所需的时间。
tf workspace /delete logZipWs /collection:http://tfsserver:8080/tfs/DefaultCollection