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

时间:2011-08-31 08:54:38

标签: tfs tfs2010 migrate shelveset

我必须将在一个分支中创建的shelveset称为“开发”,再将另一个称为“release”。 这样我就可以直接合并shelveset然后发布为开发分支创建的版本。

我使用的命令是:

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

显示此错误:

  

无法确定工作区

6 个答案:

答案 0 :(得分:12)

您启动命令的位置必须来自您的工作区。 例如。 c:\workspaces\project\development如果您的来源位于此处。

答案 1 :(得分:3)

我猜您的问题是:如果没有发生此错误,我怎样才能完成工作?。 在这种情况下,请确保两个分支都映射到您的本地系统,并且您的源代码的最新版本是一个get-latest-version。

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分: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工作,至少迁移选项正常工作

答案 4 :(得分:0)

我的第一个答案说明了如何使用TFPT正确地完成此操作。在这个答案中,我想解释一下在没有TFPT的情况下如何做。

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

答案 5 :(得分:-1)

我遇到了和Boris Callens一样的问题。我安装了VS Power Tools for VS2012和VS2013。在命令promt中运行tfpt.exe命令时,我总是收到错误消息" 无法确定工作区"。这是因为我在TFS 2013中使用了VS 2012电动工具。所以我不得不在系统环境变量中更改电动工具的路径" TFSPowerToolDir "指向VS2013的Power Tools。

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