TFS搁置集从一个分支迁移到另一个分支

TFS搁置集从一个分支迁移到另一个分支,tfs,migrate,shelveset,Tfs,Migrate,Shelveset,我必须将在一个分支(如“开发”)中创建的搁置集迁移到另一个分支(如“发布”)。 这样我就可以直接合并搁置集,然后发布为开发分支创建的版本 我使用的命令是: tfpt unshelve "shelveset name" /migrate /source:"$...development" /target:"$...Release" 它显示了以下错误: 无法确定工作区 我猜你的问题是:我怎样才能在没有这个错误发生的情况下完成工作?。 在这种情况下,请确保这两个分支都映射到本地系统,并且在“获取最新

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

我使用的命令是:

tfpt unshelve "shelveset name" /migrate /source:"$...development" /target:"$...Release"
它显示了以下错误:

无法确定工作区

我猜你的问题是:我怎样才能在没有这个错误发生的情况下完成工作?。 在这种情况下,请确保这两个分支都映射到本地系统,并且在“获取最新版本”中映射到源代码的最新版本


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

启动命令的位置必须在工作区内。
例如,
c:\workspace\project\development
如果你的源代码在那里。

我今天遇到了同样的问题。 在检查以下各项后,我使其正常工作:

  • 仅安装一个Powertools
  • 从开发人员命令提示符运行该命令
  • 从映射到目标工作区的文件夹中运行该命令
我不得不卸载v。2010年,只有v。2012年仍然存在。版本号似乎没有引用您的TFS版本。
要检查您是否位于正确的文件夹,可以运行tf workspace。

在弹出的窗口中,找到要定位的工作区并签入本地文件夹列。确保您在该文件夹中。

我遇到了与Boris Callens相同的问题。我已经为VS2012和VS2013安装了TF电动工具。在command promt中运行tfpt.exe命令时,我始终会收到错误消息“无法确定工作区”。这是因为我在TFS 2013中使用了VS 2012电动工具。因此,我必须在系统环境变量“TFSPowerToolDir”中更改电动工具的路径,以指向VS2013的电动工具

您可以找到运行的版本号:tfpt.exe/?

我花了大量的时间来完成这项工作,我几乎没有什么问题要克服,事实上其中一个问题就是

无法确定工作区

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

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

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

总结

  • 使用CMD或DevCMD-没关系
  • 源运行分支根文件夹
  • 验证团队资源管理器服务器连接
  • TF Power Tools 2013适用于TFS v15,至少迁移选项适用

    • 我的第一个答案解释了如何使用
      TFPT
      正确地完成这项工作。在这个答案中,我想解释如何在没有TFPT的情况下实现这一点


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

      对我来说,我安装了两个Powertools版本。我不得不卸载旧的,所以只剩下最新的(2012年)。另外,powertools版本没有引用TFS版本(因为我们使用的是2010年版),我同意。我已经阅读了很多关于这方面的文章,并尝试了各种修复,但我确信是多个现有版本的TFPT甚至存在于您的系统上(无论您如何引用它们),导致了此错误的发生,正因为如此,我强烈怀疑这是PowerTools代码中的一个bug。我正在从源分支运行相同的命令,但仍然得到错误。我正在使用TFPT 2015,服务器上有TFS 2017-这可能是问题吗?@ryanwebjackson请确保,您的两个分支都映射到了工作区@ryanwebjackson我想是的。基本上,TFS无法处理未映射的代码。我是这样理解的——“无法确定工作区”告诉您它找不到映射到某个工作区中某个目录的“$/collection/…”。你想映射两个分支,获取最新的,然后运行你的命令我想我当时不能运行这个命令,因为我的一个工作区在目录结构中的位置太高了,但我不会删除它,只是为了这个操作。谢谢你的反馈,我真的很感激。@ryanwebjackson这是我没有得到的。。。“我的一个工作区位于目录结构的最高层”。空间不能高也不能低。可以在一个工作空间中映射任意多个分支或其零件。即使你在谈论分支,这也没关系。上可以是
      $/xxx/x/x/x/x
      和另一个
      $/y/y
      cd [your !!source!! branch root]
      tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"