语义合并工具
时间:2020-03-06 14:44:25 来源:igfitidea点击:
背景:在我的工作中,我们使用SVN,Cand VisualStudio。我的部分任务定期涉及全局重命名。在重命名某些内容然后合并更改之后,我经常会遇到构建崩溃的情况。
问题:是否有解决方案可以查看我的更改,注意全局重命名,然后将其应用于其他人在合并它们时所做的编辑?
获得大致相同效果的另一种方法是某种重构日志,然后将其应用于传入的编辑。
该工具不一定是完美的,即使它只是在编辑中指出任何引用了我编辑过的内容的参考也很有价值。
编辑我知道VS的重构工具。我正在寻找的是可以让我在重构工作副本后将相同的重构应用于我现在需要合并的其他人的编辑的东西。
理想的解决方案是确保在进行重构时没有任何未完成的编辑,但这将阻止其他人在下个星期或者更长时间内完成任何工作。 (因为下一周他们将不得不每半小时左右同步一次)
解决方案
假设至少VS 2005且全局重命名是变量/属性/函数,则可以使用"重构重命名"右键单击菜单选项。通过设计,它可以在整个解决方案中传播名称更改。
能否减少我们提交更改所需的时间?两次提交之间可能需要一个或者多个星期的时间...
我了解问题。不幸的是,我认为在同步时没有足够聪明的SVN脚本来完成此工作。
也许团队与SVN进行更适当的合作可能会使这种情况感到痛苦。在工作副本中执行svn:update并实现合并操作时,最好在提交更改之前重建更新的解决方案。
确实,拥有一个svn脚本并且能够在合并时自动执行该脚本会很棒。
保持重命名与其他重构分开。它们通常可以自动化,因此更改很容易。我们甚至可以分发脚本,以允许其他具有merge hell的工程师对其中的文件执行转换。
没有自动化重构的简便方法,因此请保持简单。重命名只需要几分钟,我们应该可以通过最少的测试就可以签出并提交。