通过命令行从 TFS 签出存储库

Posted

技术标签:

【中文标题】通过命令行从 TFS 签出存储库【英文标题】:Check out a repository from TFS via the command line 【发布时间】:2016-06-09 16:50:05 【问题描述】:

我正在尝试编写一个脚本(最终将在 TeamCity 中使用)以通过命令行从 TFS 签出一个项目。每次都应该重新执行此操作,即创建映射到工作目录的本地工作区。

我找到了页面Workspace Command,并且我相信我需要使用workspace 命令,可能后跟checkout,但我不是100% 确定。到目前为止,我已经尝试过:

tf workspace /new <MyMachineName>;<WindowsUsername> /noprompt
/collection:https://<myrepo>.visualstudio.com:8080/DefaultCollection/MyProject
/permission:Private
/location:local
/filetime:checkin
/login:<TfsUsername>,<TfsPassword>

导致错误

TF400324:无法从服务器 https://myrepo.visualstudio.com:8080/DefaultCollection/MyProject 获得 Team Foundation 服务。 技术信息(针对管理员): 无法连接到远程服务器

我正在使用 Visual Studio 2012 的开发人员命令提示符,并且我能够通过网络界面浏览存储库。

【问题讨论】:

【参考方案1】:

你的/collection 标志应该只到https://myrepo.visualstudio.com:8080/DefaultCollection(即你不应该在这里指定一个项目)

接下来,您必须使用tf Workfold 指定要在本地计算机上映射工作区的位置以及要映射的服务器文件夹(在这种情况下,可能是$/MyProject 或某个子文件夹下的所有内容)。

最后,您需要通过tf get 将文件拉到本地计算机上的新工作区。

【讨论】:

感谢您为我概述了所需的步骤。我尝试按照您的建议更改 /collection 属性,但仍然遇到相同的错误。 抱歉没有帮助,我无法重现您的错误,但可能是缓存混乱或其他原因(删除缓存:blogs.msdn.com/b/vsalm/archive/2013/12/17/…)。需要注意的另一件事是 tf.exe 可能会忽略 /login 标志并使用您的缓存凭据。 我已经尝试清除缓存,但有趣的是使用缓存凭据 你能详细说明第一句话吗?并更清楚地说明什么意思?【参考方案2】:

8080 端口用于本地 TFS 服务器。如果您使用的是 Visual Studio Team Service,则需要将其从 URL 中删除。

尝试以下网址:

/collection:https://<YOURAccount>.visualstudio.com/DefaultCollection

【讨论】:

以上是关于通过命令行从 TFS 签出存储库的主要内容,如果未能解决你的问题,请参考以下文章

如何通过提交消息搜索 Git 存储库?

如何使用命令行从私有 github 存储库下载单个原始文件?

TFS命令tf:undo(强制签入别人签出的文件)(转)

如何通过命令行从多个文件夹中获取完整文件名到 csv

通过命令行从 FXCop 中排除规则

通过命令行从 unittest.TestCase 运行单个测试