我已开始在我的 MSVC 2015 C++ 项目中使用 TFVC。我习惯了像 git/svn 这样的命令行存储库,我可以简单地进行签出/克隆等...并将文件复制到我喜欢的任何文件夹中。
因此,我已通过 MSVS2015 GUI 将工作区检出到映射位置 (c:\myworkspace)。但现在我想运行我的自动测试脚本,它将最新文件从存储库复制到当前目录(例如 c:\autorun)。自动测试脚本构建、测试并生成结果等......但是我don't希望它能够覆盖我工作区中的内容,以防其他人添加更改。
我希望它转到我选择的另一个文件夹。
在 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 - 而且我不想删除/覆盖我的本地更改。
您可以使用以下命令创建新的(临时)工作区
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 编写的小实用程序,Tfs导出 http://blogs.msmvps.com/vstsblog/2011/03/14/download-files-from-tfs-version-control-and-set-the-file-last-access-timestamp-to-the-file-s-last-check-in-time/.
从OP更新
假设我从要将项目提取到的文件夹开始。我使用了以下内容:
tf dir 显示我拥有的存储库:
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,以便不需要用户交互。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)