【发布时间】:2011-03-02 00:42:29
【问题描述】:
Subversion 的svn import 命令允许重复 将外部目录树导入源代码控制。同样重要的是要注意原始目录树未修改,即它不会成为结帐/工作目录。
在 TFS 2010 (Team Foundation Server) 中使用命令行的等效项是什么?
【问题讨论】:
Subversion 的svn import 命令允许重复 将外部目录树导入源代码控制。同样重要的是要注意原始目录树未修改,即它不会成为结帐/工作目录。
在 TFS 2010 (Team Foundation Server) 中使用命令行的等效项是什么?
【问题讨论】:
您可以创建一个批处理文件,首先创建一个临时工作区,然后添加文件并执行签入,然后再次删除该工作区:
tf 工作区 /new Temp /collection:http://MyTfsServer:8080/tfs/defaultcollection /无提示
tf add *.* /recursive /noprompt
tf checkin /recursive /noprompt
tf 工作区 /delete Temp /collection:http://MyTfsServer:8080/tfs/defaultcollection /无提示
【讨论】:
TFS 不支持这个概念。
您可以在源代码控制中包含一个脚本,开发人员可以运行该脚本将文件从外部 VCS 拉入他们的工作区。该脚本也可以作为自动构建过程的一部分。
【讨论】:
如前所述,您将考虑使用解决方法。
您可以考虑使用 MSBuild 来执行此操作,因此它是您构建过程的一部分。要访问 TFS,您可以使用 TF.EXE 或使用MSBuildExtensionPack(请参阅this question also)。
希望您的解决方案中有一个项目依赖于源代码中其他地方的内容,因此您有一个明显的位置来放置您的 MSBuild 自定义代码。
我设想 MSBuild 代码会:
它并不漂亮,但在没有导入的情况下你不太可能找到一个漂亮的解决方案。这种方法的优点是将您的自定义设置在 .csproj 中,这意味着您不需要任何类型的自定义构建过程来确保更新内容。每次构建您使用的项目时都会发生这种情况。
如果您知道构建您的脚本的人会将您要导入的内容签出在相对于正在构建的解决方案的可预测位置,您可以简单地从该位置复制,而不是使用 TF get。
【讨论】: