我必须将在一个分支中创建的shelveset称为“开发”,再将另一个称为“release”。 这样我就可以直接合并shelveset然后发布为开发分支创建的版本。
我使用的命令是:
tfpt unshelve "shelveset name" /migrate /source:"$...development" /target:"$...Release"
显示此错误:
无法确定工作区
答案 0 :(得分:12)
您启动命令的位置必须来自您的工作区。
例如。 c:\workspaces\project\development
如果您的来源位于此处。
答案 1 :(得分:3)
我猜您的问题是:如果没有发生此错误,我怎样才能完成工作?。 在这种情况下,请确保两个分支都映射到您的本地系统,并且您的源代码的最新版本是一个get-latest-version。
这应该可以防止错误发生,因为路径都包含有关用于映射的工作空间的信息。
答案 2 :(得分:1)
我今天遇到了同样的问题。 检查下面的项目后,我得到了它的工作:
我不得不卸载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工作正常?
总结
答案 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