我假设:
tf.exe get $/project /recursive
...需要这个奇怪的工作区映射、已知的 TFS 服务器等。
有什么办法可以做这个最简单的事情:连接到thisTFS 服务器使用this一组凭据,获取最新的源代码this项目并把它here?全部来自命令行。
首先,您是否想要一份不再受源代码控制的受控文件的副本(例如 SVN 导出),或者您仍然希望使用这些文件和 TFS?
选项 1:完全不绑定
如果您只想要最新文件的副本而不“绑定”到 TFS,则您需要自己做一些工作。撇开凭据([/login:username,[password]]
许多命令行方法的参数)。
- Use the
TF
获取文件列表的命令:tf dir "$/YourSolution" /Recursive > files.txt
- Process
files.txt
使用一些巧妙的批处理文件(或使用脚本语言):
- 读取以以下内容开头的行
$/
这就是目录,在您的目标中创建目录(删除前三个字符和最后一个字符,冒号)。
- 读取接下来的行(直到空白或文件末尾),每一行都代表步骤 3 中发现的目录中的一个文件。假设您将该文件放在变量中
%file%
和目录%dir%
,然后发出以下命令(对于该目录中的每个文件):
tf view "$/%DIR%/%FILE%" "/output:Your-Target-Path/%DIR%/%FILE%"
或者如果您对当前目录作为目标感到满意:
tf view "$/%DIR%/%FILE%" "/output:%DIR%/%FILE%"
请注意,您需要%DIR%/%FILE%
输出部分或所有文件将转储到同一目录中。
注意:这可能是非常高的带宽和缓慢的操作!
选项 2:临时映射
- 创建临时工作区:
tf workspace /new /collection:<URL_TO_SERVER> /permission:Private
(注意,这会提示,有一个无提示选项,但确定工作区的名称留作练习)
- 为文件创建一个目录,例如
LOCALDIR
- 为您的文件夹创建映射:
tf workfold /map "$/SERVER_DIR" "LOCALDIR"
- Go into
LOCALDIR
- 获取文件
tf get . /Recursive
此时,您应该拥有所有文件,如果您愿意,您还可以与 TFS 绑定,以便可以提交更改。或者,您现在可以将内容复制到其他地方并破坏映射/工作空间。使用正确的命令行变体tf workfold /unmap
and tf workspace /delete
将取消映射您的工作文件夹并删除工作区。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)