是否可以从已经提交的更改中在Eclipse中创建补丁?

时间:2009-11-17 14:44:05

标签: eclipse plugins patch

我使用Eclipse中的Create Patch工具为未提交的更改创建补丁。我正在寻找一种在Eclipse中为已经提交给VCS的更改创建补丁的方法。

除非我错过了一些我不认为这是可能的,但有没有添加此功能的插件?例如您可以在历史记录视图中选择两个版本并在它们之间创建补丁或比较两个分支,并能够在同步视图中从结果中创建补丁吗?

我很高兴从命令行创建这样的补丁,但我正在寻找一种简化/集成过程的方法。

感谢您的帮助。

更新:如果有任何建议特定于特定的源控制系统,我对CVS,SVN和Mercurial特别感兴趣。再次感谢。

6 个答案:

答案 0 :(得分:9)

使用subclipse,您可以在历史记录视图中选择目录的两个修订版,比较它们并将修补程序保存为统一差异。

答案 1 :(得分:6)

我提交后刚刚制作了补丁SVN! :)

  • 输入“SVN Repository”
  • 转到项目的根目录。
  • 点击“比较”
  • 选择“统一差异输出文件”
  • 点击“选择”,然后选择文件的名称和位置
  • 点击“确定”

答案 2 :(得分:4)

我做了一些广泛的研究......我发现没有办法使用实际的Eclipse Comparison Editor根据“Local History”部分的差异生成.patch文件。

我将为此创建一个新功能请求。

答案 3 :(得分:2)

使用" SVN Repository explorer"可以做到这一点。透视图。

  • 导航到要比较的根元素(通常是trunk文件夹)
  • 显示"历史视图" (如果尚未显示)
  • 从"历史记录视图"
  • 中选择两个修订版
  • 右键单击两个修订版本中的一个,然后选择"创建修补程序..."在上下文菜单中。

答案 4 :(得分:0)

根据其他答案,不,目前无法实现。

但是现在,这里以SVN为例进行手动解决(我想其他VCS将允许非常相似的比较):

  • 创建第二个Eclipse工作区;工作区2。
  • 确保Workspace 2具有合适的“目标”和原始工作区1的正确代码,具有您忘记从中获取补丁的代码。
  • 使用能够比较目录的合并工具手动比较Workspace 1和2(在Windows上,我喜欢Araxis Merge,但WinMerge也可以。)
  • 打开每个文件并确保只有您的更改,如果有其他更改,您必须跨越每个更改的行,如果没有其他人更改了目标文件,您可以复制整个文件对面。
  • 同步工作区2(但不要办理登机手续!),这样你就可以看到你现在所做的改变。
  • 在Workspace 1中,打开“SVN Repository Exploring Perspective”
  • 右键单击签入代码的文件夹(可能是“分支”或“主干”下的内容) - > “比较......”它应该已经在办理登机手续之前填写了的修订号。
  • 现在,您可以在签入之前看到您签入的代码(您忘了带补丁)的更改。
  • 让工作区1和2并排打开并直观地运行每个已更改的文件,以确保它们匹配现在在2中显示的所有内容。

非常,非常乏味,但应该接受所有的改变。

答案 5 :(得分:0)

当我无法在Eclipse中创建它时(我只需要使用CVS),我尝试了其他可用的软件,发现SmartCVS可以做到这一点。但是,此功能仅在Pro付费版本中可用,并且当您有更多代码时,它需要一些时间(比较慢)。

我想了解一些具有此功能的开源软件,如果有人知道的话。感谢