6

我试图了解如何解决以下情况。

例如,我有一个 TFS 2012 服务器,其中包含三个集合;

- http://tfs2012:8080/tfs/DefaultCollection/
- http://tfs2012:8080/tfs/CollectionOne/
- http://tfs2012:8080/tfs/CollectionTwo/

在 CollectionOne 和 CollectionTwo 中,我有一个同名的工作区,我们称之为“TestWorkspace”。

当我在 CollectionOne 上为该工作区运行 map 命令时,它可以完美运行(可以获取、删除、更新等)。当我在使用完工作区后尝试取消映射工作区时出现问题(想想构建机器),以下调用失败。

tf.exe workfold /unmap /workspace:TestWorkspace E:\Temp

它失败了;

Multiple workspaces exist with the name TestWorkspace.
Please specify the Team Foundation Server or qualify the name with the owner.

因此我尝试以下方法;

tf.exe workfold /unmap /workspace:TestWorkspace E:\Temp /collection:http://tfs2012:8080/tfs/CollectionOne/

以下内容失败;

The option collection is not allowed. 

此外,指定工作空间的所有者也无济于事,因为它们属于同一用户。

如何取消映射存在于两个或多个集合中的工作区?

4

2 回答 2

1

这确实是一个令人讨厌的缺陷。这是我成功使用的简单解决方法。

# Rename existing workspace to something unique
tf workspace /collection:http://yourserver:8080/tfs/DefaultCollection /newname:TEMPORARY /noprompt DEVBOX-SGY

# Unmap based on new (unique) name
tf workfold /unmap /workspace:TEMPORARY C:\Code\Tools

# Rename workspace back to original name to avoid side-effects
tf workspace /newname:DEVBOXSGY /noprompt TEMPORARY

就我个人而言,我无法使用 sparkplug 提到的解决方法,因为我需要一些自动化友好的东西。

于 2016-02-25T08:22:58.010 回答