【发布时间】:2023-03-24 21:20:01
【问题描述】:
由于他们据称已将大部分 Power Tools 功能集成到 VS2017 中,因此新命令“tf unshelve”与将搁置集移动到另一个分支的旧命令“tfpt unshelve”不同,因为您无法添加源以及使用新命令的目标。我真的不想为了移动搁板而必须在我的笔记本电脑上安装 VS2015。有谁知道如何用 VS2017 做到这一点?我很难相信这是不可能的。
非常感谢任何帮助!
【问题讨论】:
由于他们据称已将大部分 Power Tools 功能集成到 VS2017 中,因此新命令“tf unshelve”与将搁置集移动到另一个分支的旧命令“tfpt unshelve”不同,因为您无法添加源以及使用新命令的目标。我真的不想为了移动搁板而必须在我的笔记本电脑上安装 VS2015。有谁知道如何用 VS2017 做到这一点?我很难相信这是不可能的。
非常感谢任何帮助!
【问题讨论】:
【讨论】:
另一种解决方法...
这会保留变更集 2 的更改并回滚原始分支。
此流程可能不适用于每家公司及其政策,但确实有效。我不喜欢它,但有时它是必要的。
【讨论】:
不幸的是,使用命令“tftp unshelve”或“tf unshelve”将 Shelveset 移动到另一个分支在 VS 2017 中目前仍不受支持。
已经有一个 feedback submitted here 来跟踪它,就像下面提到的 Youhana Naseim [MSFT](来源 here):
对于 VS 2017,我们没有电动工具版本。我们不断 评估产品中仍然缺少的功能。这 三个最值得注意的是:
TFS Windows Shell 扩展集成
按状态查找服务器工作区
取消搁置/迁移
因此,作为一种解决方法,您可以尝试以下方法:
c:\projects>tf unshelve
2)。 c:\projects>tf rename 314.c ..\newdir\1254.c
【讨论】:
tf rename 有什么帮助。能否提供更详细的示例?
使用 VS2019 的另一种可能更简单的方法是将源文件夹复制/粘贴到分支目标文件夹并使用
tf reconcile /promote
检测所有添加或更改的文件。
【讨论】:
当我知道分支文件可以被货架集直接覆盖时,我会这样做。如果您需要合并,请使用带有目录比较的 win-merge 将内容重新组合在一起。
遗憾的是,这还没有作为原生功能加入 VS,但是当您考虑到取消搁置到代码合并和保留历史记录等的复杂性时,任务就变得复杂了。祝你好运!
【讨论】:
Multimerge 扩展(MultiMerge.2017、MultiMerge.2019)对我来说就像一个魅力。 (或者更确切地说,TFVC 工具本身无法通过重新应用补丁来合并。)
对于 VS 2017 和 VS 2019,没有 tfpt。unshelve /migrate 命令也没有被合并到 tf 中。因此,目前还没有任何开箱即用的方法。 (最后检查于 v16.7.5)
【讨论】:
tfpt unshelve /migrate 命令,答案被严重否决以至于我删除了它。几年后我回到了 TFS,我在最新版本中看到了同样的问题。好工作! (我想我需要重新学习 git-tfs 才能保持理智。)
到目前为止(2020 年 2 月)TSPT 在 Visual Studio 中不可用。
我找到的解决方法是创建一个新分支并使用 WinMerge (http://winmerge.org) 之类的工具来比较和合并从 Main 到新分支的更改,然后在一切正常时撤消主分支上的更改。
【讨论】:
在这个问题上迟到了,但我通过在分支 A 中获取我需要的变更集来解决它。将文件夹重命名为分支 B。现在我的新分支有了我需要的变更集。然后只需在高级下强制获取最新以重新获取原始分支 A 原样。我的分支 B 是全新的,所以我不需要它的任何其他东西,不确定你的情况是否相同,但解决起来足够快。
【讨论】: