Visual Studio 2017无法将Shelveset移动到另一个分支

问题描述 投票:13回答:4

由于他们应该将大多数Power Tools功能集成到VS2017中,因此新命令“tf unshelve”与旧命令“tfpt unshelve”不同,可以将shelvesets移动到另一个分支,因为您无法添加源和目标使用新命令。我真的不想在我的笔记本电脑上安装VS2015只是为了移动一个shelveset。有谁知道如何用VS2017做到这一点?我很难相信这已经不可能了。

非常感谢任何帮助!

visual-studio-2017 tfs2017
4个回答
5
投票

另一个解决方法......

  1. 检查现有shelveset的变化(变更集1)
  2. 将更改合并到另一个分支并签入(变更集2)
  3. 从Changeset 1回滚更改。

这将保留对变更集2的更改并回滚原始分支。

此过程可能不适用于每个公司及其政策,但确实有效。我不喜欢它,但有时它是必要的。


3
投票

不幸的是,在VS 2017中,目前仍然不支持使用命令“tftp unshelve”或“tf unshelve”将Shelveset移至另一个分支。

已经有一个feedback submitted here跟踪它,正如Youhana Naseim [MSFT]在下面提到的(源here):

对于VS 2017,我们没有电动工具发布。我们一直在评估产品中仍然缺少的功能。最值得注意的三个是:

  • TFS Windows Shell Extensions集成
  • 按状态查找服务器工作区
  • 取消搁置/迁移

因此,作为一种解决方法,您可以尝试以下方法:


2
投票

当我知道分支文件可以被架子集直接覆盖时,我就是这样做的。如果你需要合并,那么使用win-merge与目录比较来重新组合。

  • 关闭Visual Studio的所有实例
  • 将本地源目录重命名为临时名称
  • 打开Visual Studio
  • 通常取消您的更改 - VS将仅使用您的更改重新创建目录结构。
  • 将所有已更改的文件复制到分支目录中(覆盖只读文件)
  • 关闭视觉工作室
  • 将本地源目录重命名为其原始名称(删除重新创建的VS)
  • 重新打开您的分支项目
  • 现在有两个选项:你可以离线然后再次上线让VS弄清楚改变了什么,或者只是检查整个文件夹,然后再次登记。在做之前,请确保没有其他任何检查!

令人遗憾的是,这还没有作为本机功能被置于VS中,但是当你考虑到解除代码合并,保留历史等的复杂性时,任务变得复杂。祝好运!


0
投票

从那时起(2019年5月),TSPT在Visual Studio 2017中不可用。

我找到的解决方法是创建一个新的分支并使用像WinMerge(http://winmerge.org)这样的工具来比较和合并从Main到新分支的更改,然后当它完全正确时我撤消主分支上的更改。


0
投票

我绝对同意这是2017年及以后的一个非常错过的​​功能。经过多次手动完成后,我决定将它添加到名为“MultiMerge”的我的(免费)Visual Studio扩展中。您现在可以右键单击搁置集并选择目标分支。有一个VS2017版本和VS2019。或者,您只需使用Visual Studio中的“工具和延伸”菜单选择此扩展名即可。

随意评价扩展名,让其他人更快地找到它:)

© www.soinside.com 2019 - 2024. All rights reserved.