我已经开始在我的MSVS 2015 C ++项目中使用TFVC了。我习惯于命令行repos,比如git / svn,我可以在那里简单地进行结账/克隆等等......并将文件复制到我喜欢的任何文件夹中。
因此,我已通过MSVS2015 GUI将我的工作区检出到映射位置(c:\ myworkspace)。但现在我想运行我的自动测试脚本,它会将最新文件从repo复制到当前目录(例如c:\ autorun)。自动测试脚本构建并测试并生成结果等...但我不希望它只是覆盖我工作区中的内容,以防其他人添加了更改。
我希望它转到我选择的其他文件夹。
在Git中,我只需导航到文件夹(cd c:\ autorun),然后执行git clone <repo-path>
。但我无法看到TFVC的工作空间是如何实现的。
到目前为止,我已经开始修改与git一起使用的脚本来获取它:
' Clean any existing files:
rmdir /S /Q <projname>
' Checkout project
tf checkout <projname> /recursive
' Do other stuff (build test etc...)
但这仅适用于我的c:\ workspace - 而且我不想删除/覆盖我的本地更改。
答案 0 :(得分:2)
您可以使用
创建一个新的(临时)工作区cd temp
md newfolder
tf vc workspace /new ...
tf vc workfold /map $/Project/Folder c:\temp\newfolder
cd newfolder
tf vc get . /recursive
tf workspace /delete
或者您可以使用Neno Loje编写的小实用程序TfsExport。
从OP更新
假设我从我要将项目提取到的文件夹中开始。我使用了以下内容:
显示我有的回购:
D:\sandbox\tfs-test > tf dir
$/:
$tfsRepo1
$tfsRepo2
$tfsRepo3
我只想要前两个回购:
tf vc workspace /new /noprompt cit
tf vc get tfsRepo1 /recursive
tf vc get tfsRepo2 /recursive
然后整理一下:
tf workspace /delete cit /noprompt
rmdir /S /Q tfsRepo1
rmdir /S /Q tfsRepo2
请注意在各个地方使用/ noprompt,以便不需要用户交互。