15

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

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

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

谢谢你的帮助。

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

4

6 回答 6

10

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

于 2009-11-17T15:17:11.677 回答
6

我刚刚在提交后做了一个补丁 SVN!:)

  • 进入“SVN存储库”
  • 转到项目的根目录。
  • 点击“比较”
  • 选择“统一差异输出文件”
  • 单击“选择”并选择文件的名称和位置
  • 点击“确定”
于 2013-05-30T09:56:32.387 回答
4

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

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

于 2012-09-26T20:22:23.977 回答
2

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

  • 导航到要比较的根元素(通常是树干文件夹)
  • 显示“历史视图”(如果尚未显示)
  • 从“历史视图”中选择两个修订
  • 右键单击两个修订版本之一,然后在上下文菜单中选择“创建补丁...”。
于 2014-12-11T16:22:13.340 回答
0

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

如果有人知道的话,我想知道一些具有这种能力的开源软件。谢谢

于 2013-03-20T10:12:47.623 回答
0

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

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

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

非常非常乏味,但它应该接受所有更改。

于 2013-01-11T17:16:00.843 回答