28

我必须将在一个分支中创建的搁置集说“开发”迁移到另一个说“发布”。这样我就可以直接合并搁置集,然后发布为开发分支创建的版本。

我使用的命令是:

tfpt unshelve "shelveset name" /migrate /source:"$...development" /target:"$...Release"

它显示此错误:

无法确定工作区

4

6 回答 6

12

您启动命令的位置必须在您的工作空间内。例如c:\workspaces\project\development,如果那是您的来源所在的位置。

于 2011-12-09T08:35:03.850 回答
3

我想您的问题是:如何在不发生此错误的情况下完成工作?. 在这种情况下,请确保两个分支都映射到您的本地系统,并且您的源代码的最新版本执行了 get-latest-version。

这应该可以防止错误发生,因为这些路径都包含有关用于映射的工作空间的信息。

于 2011-09-13T21:35:51.483 回答
1

我今天遇到了同样的问题。检查以下项目后,我得到了它的工作:

  • 只安装了一个 Powertools。
  • 从开发人员命令提示符运行命令
  • 从映射到目标工作空间的文件夹中运行命令。

我不得不卸载 v. 2010,所以只剩下 v. 2012。版本号似乎没有引用您的 TFS 版本。
要检查您是否在正确的文件夹中,您可以运行 tf workspace.
在弹出的窗口中,找到您要定位的工作空间并检查列本地文件夹。确保您在该文件夹中。

于 2014-04-18T13:41:10.393 回答
0

我花了很多时间来完成这件事,我几乎没有要克服的问题,其中一个实际上是

无法确定工作区

通过从源分支根文件夹运行命令解决了这个特定问题。这与这里的一些答案相反,一般来说,他们说使用“目标”分支 - 不,使用“源”:

cd [your !!source!! branch root]
tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"

在此之后出现了第二个问题。似乎它无法连接到 TFS 服务器。我意识到,我安装了多个 VS 并连接到不同的 TFS 服务器。我使用的是 VS12,我有工作区和服务器连接。但是我没有意识到需要在 VS13 中复制相同的连接才能使 TFPT2013 正常工作。它连接到相同的服务器和工作区。

我也尝试过使用 TFPT2015,但我安装了它,但它没有安装 TFPT.exe,因此它没用。所以我尝试了从 TFPT2013 到 TFS2015,它适用于这个特定的命令。我想知道,如果 VS12/13 对 TFS2015 工作正常,为什么不呢?

总结

  • 使用 CMD 或 DevCMD - 没关系
  • 分支根文件夹运行
  • 验证团队资源管理器服务器连接
  • TF Power Tools 2013 适用于 TFS v15,至少迁移选项有效
于 2018-05-09T14:56:46.793 回答
0

我的第一个答案解释了如何使用TFPT. 在这个答案中,我想解释如何在没有 TFPT 的情况下做到这一点。

每个开发人员都应该有多个工作区。因为我们同时处理多个问题,我们不想混淆。所以,你在一个问题上工作WS1,另一个问题在WS2. 因此,如果您在不同的工作空间中搁置您的搁置集,这也将这样做。因为您的搁置集不能指向同一工作区中的 2 个不同位置。但在不同的工作空间中,它将搁置到该工作空间中映射的位置。

于 2020-02-28T20:27:03.007 回答
-1

我遇到了和鲍里斯·卡伦斯一​​样的问题。我已经为 VS2012 和 VS2013 安装了 TF Power Tools。在命令提示符中运行 tfpt.exe 命令时,我总是收到错误消息“无法确定工作区”。这是因为我在 TFS 2013 中使用了 VS 2012 电动工具。所以我必须在系统环境变量“ TFSPowerToolDir ”中更改电动工具的路径以指向 VS2013 的电动工具。

可以找到运行的版本号:tfpt.exe /? TF 电动工具版

于 2015-10-07T10:07:43.043 回答