我正在向TFS发出以下命令:
>tf merge /baseless c:wssource c:wstarget /recursive /version:C100~C100
但是我有大量需要合并的变更集。 是否有快捷方式,或者某种指定列表的方法,例如:
>tf merge /baseless c:wssource c:wstarget /recursive /version:C100,C108,C110,C800,C1001,etc...
如果 powershell 是一个选项,下面的脚本应该会有所帮助(未测试!
$cslist = 1,23,45,456,568 #list of all changesets
foreach ($cs in $cslist) { & 'C:Program FilesMicrosoft Visual Studio 10.0Common7IDEtf.exe' merge /baseless c:wssource c:wstarget /recursive /version:C$cs }
从另一篇文章中抓取了这个,你可能已经看到了,但由于我没有遇到这个问题,我只是想伸出援手。
您有以下几种选择:
- 如果您知道要合并的变更集
- (或要避免合并的变更集),则可以从要合并的文件中选择一个文件夹,然后通过选择所需的特定变更集进行合并。如果您有变更集 2000、2001、2004、2010 并且您想要 2001 和 2010,这有点复杂。每次合并只能合并列表中的连续变更集,因此必须合并 2001 年和 2010 年。这仍然比合并许多文件更好,如果您有更多的文件而不是变更集组。
- 如果要将该文件夹下的所有内容合并到特定的变更集或最新的变更集,则可以在一次批量合并中执行此操作。
在这两种情况下,您仍然必须解决对源分支和目标分支中同一文件中的同一行进行不同更改的问题。
操作:在 TFS 中合并多个文件
以下扩展声称可以执行此操作:
TFS 生产力工具 - 扩展合并 2012
扩展合并扩展为多个合并功能提供了解决方法 未由 TFS 实现:
- TFS 合并会导致批量签入操作,该操作将所有文件中的文件放入 以前的变更集合并为一个大型合并变更集。
- TFS 仅允许 通过合并操作偷看连续的变更集。
- TFS 不允许通过选择 工作项。
- TFS 合并对话框没有"强制"和"无根据" 选项。
您可能还希望在Visual Studio User Voice中对此功能投赞成票。