2009-11-17 73 views
12

我在Eclipse中使用了Create Patch功能来为未提交的更改创建修补程序。我正在寻找一种在Eclipse中为已经提交给VCS的更改创建补丁的方法。是否可以使用已经提交的更改在Eclipse中创建补丁?

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

我很高兴从命令行创建这样的补丁,但我正在寻找一种方法来简化/整合过程,如果可能的话。

感谢您的任何帮助。

更新:如果有任何建议是特定于特定的源代码管理系统我特别感兴趣的是CVS,SVN和Mercurial。再次感谢。

回答

8

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

+0

谢谢,我会检查了这一点。 – mikej 2009-11-18 07:02:19

+1

所以你使用SVN?什么是VCS? – 2009-11-18 08:03:04

+2

VCS =版本控制系统,CVS,SVN等的通用名称。 – 2009-12-12 05:58:29

4

我做了一些广泛的研究...我发现没有办法使用实际的Eclipse比较编辑器根据“本地历史”部分中的差异生成.patch文件。

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

+1

这是怎么回事?在没有“创建补丁”的情况下有“应用补丁...”令人生气。我必须甩掉我的变化,而且我没有任何帮助。 – badp 2015-04-01 08:47:20

+0

我不记得我是否曾经跟随通并创建了HMM是前阵子 – 2015-09-11 13:09:52

0

根据其他答案,不,目前不可能。

但现在,这里是一个手工作业,周围SVN为例(我想其他VCSS将允许非常类似的比较):

  • 创建第二个Eclipse工作区;工作区2.
  • 确保Workspace 2对于合并的“目标”以及原始工作区1具有正确的代码,并且忘记了您从中取得补丁的代码。
  • 使用能够比较目录的合并工具(在Windows上,我喜欢Araxis Merge,但WinMerge也可以),手动比较Workspace 1和2。
  • 打开每个文件并确保只有您的更改在其中,如果还有其他更改,则必须跨越每条更改的行,如果没有其他人更改目标文件,则可以复制整个文件跨越。
  • 同步工作区2(但不检入!),以便您可以看到您现在已经到达的更改。
  • 在工作区1中,打开“SVN Repository Exploring Perspective”
  • 右键单击检查代码的文件夹(可能是“branches”或“trunk”下的某个文件夹) - >“比较...”已经在之前填写了修订号
  • 现在您可以在检入之前看到您检入的代码(忘记带补丁的代码)与版本的更改。
  • 将工作区1和2并排打开,并可视化地运行每个更改的文件,以确保它们匹配1中的所有内容,现在显示在2中。

非常,非常乏味,但它应该拿起所有的变化。

0

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

我想知道拥有这种能力的一些开源软件,如果有人知道。由于

4

我只是做了之后提交补丁SVN! :)

  • 输入 “SVN信息库”
  • 转到项目的根。
  • 点击“比较”
  • 选择“统一的diff输出文件”
  • 点击“选择”,然后选择文件
  • 单击“确定”
+0

这为我工作,但实际上是用鼠标右键单击目录,然后“用比较...”,然后在“科/标签.. 。“,然后我在同一分支上选择了前一版本,并选择了”统一差异到输出文件“选项 – oarevalo 2013-10-17 21:49:06

1

它的名称和位置可以使用“SVN Repository explorer”视角来完成。

  • 导航至要比较的根元素(通常为主干文件夹)
  • 查看“历史视图”(如果尚未显示)
  • 选择从“历史观点”
  • 右两个版本 - 点击两个修订版中的一个,然后在上下文菜单中选择“创建修补程序...”。
+0

您是在什么版本的Eclipse上执行此操作的?我似乎无法找到开普勒的功能。 – Andrew 2016-10-19 16:25:42

+1

@Andrew:我目前正在使用Eclipse Luna,它运行良好。不过,我使用以前版本的Eclipse编写了这个答案。不知道它是否是开普勒。可能是朱诺。 – Jidehem 2016-10-20 08:21:08

相关问题