0

我正在将基于 VSS 的旧版构建脚本移植到 TFS。该脚本将文件从多个服务器位置获取到不同的目录中......为了使其在 TFS 中使用相同的结构,我经常映射和取消映射特定的工作文件夹。

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

例如:

  1. 光盘目录1
  2. tf 工作文件夹 /map $/SOME_PATH 。
  3. tf 获取文件.abc /all
  4. tf 工作文件夹 /unmap 。
  5. 光盘..\ dir2
  6. tf 工作文件夹 /map $/SOME_PATH 。
  7. tf 获取文件.abc /all
  8. tf 工作文件夹 /unmap 。

在第 7 行,我得到“替换 file.abc(从 c:\dir1 移动)”,最后只有一个 file.abc 副本。

我知道我们的流程对 TFS 不友好,但现在我只想让它正常工作,这样我们就可以放弃 VSS,然后专注于之后的重组。有没有办法阻止这种行为或我可以使用的解决方法不会完全改变我们的流程?

4

3 回答 3

1

我会做些什么来让它快速工作:

  1. 镉目录1
  2. tf 工作文件夹 /map $/SOME_PATH
  3. tf 获取文件.abc /all
  4. 将 file.abc 复制到临时位置
  5. tf 工作文件夹/取消映射
  6. 光盘..\ dir2
  7. tf 工作文件夹 /map $/SOME_PATH
  8. tf 获取文件.abc /all
  9. 将文件从临时位置复制到 dir1
  10. tf 工作文件夹/取消映射
于 2013-07-22T20:58:27.677 回答
0

我不认为你可以在 TFS 中实现这一点。如果您删除工作区映射,它将删除文件。如果您尝试将同一个文件映射到 2 个位置,则会出现错误。

您需要修复构建过程。短期解决方案可能是获取文件一次,然后将其复制到需要的任何其他位置。否则我认为您需要硬着头皮将构建过程重构为更简单。无论您使用什么系统,从长远来看,简化您的构建都会对您有所帮助。

于 2013-07-22T14:29:12.483 回答
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
于 2013-09-20T22:40:30.077 回答