7

背景:在我的工作中,我们使用 SVN、C# 和 VisualStudio。我的部分任务经常涉及全局重命名。在重命名某些内容然后合并更改后,我经常会得到一个损坏的构建。

问题:是否有解决方案可以查看我的更改,注意全局重命名,然后将其应用于其他人在合并时所做的编辑?

获得相同效果的另一种方法是某种重构日志,然后将其应用于传入的编辑。

该工具不一定是完美的,即使它只是在他们的编辑中注意到任何引用我编辑过的东西的引用都是有价值的。

编辑我知道 VS 的重构工具。我正在寻找的是允许我在重构我的工作副本之后,将相同的重构应用于我现在需要合并的其他人的编辑的东西。

理想的解决方案是确保在我进行重构时没有未完成的编辑,但这会阻止其他人在下一周或更长时间内完成任何工作。(因为他们必须在下周每隔半小时左右同步一次)

4

5 回答 5

9

有一个用于该用例的商业工具,称为Semantic Merge。他们提供 15 天免费试用,开源项目可以免费使用(联系支持)。

语义合并背后的公司还有一个集成了 Sematic Merge 的 git 客户端,目前是 beta 版(这里有一些简短的介绍视频)。

于 2013-04-18T15:04:11.650 回答
1

将重命名与其他重构分开。它们通常可以自动化,因此很容易进行更改。您甚至可以分发脚本以允许其他具有合并地狱的工程师对那里的文件执行转换。

自动化重构没有简单的方法,所以保持简单。重命名应该只需要几分钟,您应该能够以最少的测试签出和提交。

于 2008-10-26T22:00:51.877 回答
0

假设至少 VS 2005 并且全局重命名是变量/属性/函数,则可以使用 Refactor - Rename 右键单击​​菜单选项。按照设计,它会在您的整个解决方案中传播名称更改。

于 2008-09-25T18:44:02.730 回答
0

我理解你的问题。不幸的是,我认为没有足够聪明的 SVN 脚本在同步时完成这项工作。

也许您的团队更恰当地使用 SVN 可能会使这种情况变得不痛苦。当您在工作副本中执行 svn:update 并实现合并操作时,最好在提交更改之前重建更新的解决方案。

确实,拥有一个能够在合并时自动执行此操作的 svn 脚本会很棒。

于 2008-10-21T16:57:35.990 回答
0

难道不能减少提交更改所需的时间吗?提交之间的一个或多个星期似乎很长......

于 2008-10-14T14:51:56.200 回答