是否存在"理解"常见重构的3路合并工具?

Ian*_*ose 5 version-control merge refactoring branch

当在一个分支上完成像"重命名字段"这样的简单重构时,将更改合并到其他分支中可能非常困难.(提取方法要困难得多,因为合并工具似乎不能很好地匹配未更改的块)

现在在我的梦想中,我正在考虑一种工具,可以记录(或计算出)在一个分支上完成了哪些定义良好的重构操作,然后在另一个分支上"重放"它们,而不是尝试合并每一行重构已经影响了.

另请参阅"我是否有一个了解VB.NET的智能第三合并工具",这是我痛苦的另一半!


还有任何人尝试类似MolhadoRef(关于MolhadoRef和重构感知SCM的博客文章),这在理论上是重构意识的源控制.

hlo*_*dal 2

您可以使用coccinelle在不同的分支上执行相同类型的重构操作。它不会记录或弄清楚自己正在做什么,您必须明确告诉它要做什么,但除此之外,它或多或少会毫不费力地对您指向的许多分支进行相同的重构。

该工具已在Linux内核中用于更新API使用等。

引用其网页:

“Coccinelle 是一个程序匹配和转换引擎,它提供了 SmPL(语义补丁语言)语言,用于在C代码中指定所需的匹配和转换。”