TFS get <file>删除<file> </file> </file>的预先存在的本地副本

时间:2013-07-22 10:57:02

标签: tfs tfs2010

我正在将一个基于VSS的遗留构建脚本移植到TFS。该脚本将文件从几个服务器位置获取到不同的目录...使这个工作在TFS中使用相同的结构我经常映射&amp;取消映射特定的工作文件夹。

这似乎有效,直到脚本将相同的服务器文件放入两个不同的本地文件夹。即使以前的工作文件夹未映射,TFS也会移动文件的现有副本,而不是获得第二个副本。

e.g:

  1. cd dir1
  2. tf workfold / map $ / SOME_PATH。
  3. 获取file.abc / all
  4. tf workfold / unmap。
  5. cd .. \ dir2
  6. tf workfold / map $ / SOME_PATH。
  7. 获取file.abc / all
  8. tf workfold / unmap。
  9. 在第7行,我得到“替换file.abc(从c:\ dir1移动)”,最后只得到一份file.abc。

    我知道我们的流程不是TFS友好的,但是现在我只是希望它能够工作,所以我们可以放弃VSS,然后专注于重新构建。有没有办法阻止这种行为或我可以使用的解决方法,这不会完全改变我们的过程?

3 个答案:

答案 0 :(得分:1)

我认为你无法在TFS中实现这一目标。如果删除工作空间映射,则删除文件。如果您尝试将同一文件映射到2个位置,则会收到错误。

您需要修复构建过程。短期解决方案可能是获取文件一次,然后将其复制到任何其他位置。否则我认为你需要咬紧牙关并重构你的构建过程更简单。无论您使用何种系统,简化您的构建都将为您提供长期的帮助。

答案 1 :(得分:1)

我会采取什么措施让这项工作更快:

  1. Cd Dir1
  2. tf workfold / map $ / SOME_PATH
  3. 获取file.abc / all
  4. 将file.abc复制到临时位置
  5. tf workfold / unmap
  6. cd .. \ dir2
  7. tf workfold / map $ / SOME_PATH
  8. 获取file.abc / all
  9. 将文件从临时位置复制到dir1
  10. tf workfold / unmap

答案 2 :(得分:0)

我遇到了同样的问题并且没有在网上找到答案所以我找到了解决方案并写了一篇博文:http://www.softwarepronto.com/2013/09/getting-multiple-labels-from-tfs-using.html

如果您不想阅读博客,解决方案是在不同的目录中创建工作区(见下文):

MKDIR D:\ATest

CD /D D:\ATest

tf workspace /delete WorkSpaceATest /noprompt

tf workspace /new WorkSpaceATest /noprompt

tf workfold /map $/ATest D:\ATest /WorkSpace:WorkSpaceATest

tf get /version:LATest01

MKDIR D:\BTest

CD /D D:\BTest

tf workspace /delete WorkSpaceBTest /noprompt

tf workspace /new WorkSpaceBTest /noprompt 

tf workfold /map $/BTest D:\BTest /WorkSpace:WorkSpaceBTest

tf get /version:LBTest01