无论如何要在 Eclipse 中使用带有 EGit 的外部差异编辑器?

Posted

技术标签:

【中文标题】无论如何要在 Eclipse 中使用带有 EGit 的外部差异编辑器?【英文标题】:Anyway to use an external diff editor in Eclipse with EGit? 【发布时间】:2013-08-20 02:47:58 【问题描述】:

在进行差异/合并时,是否可以将 Eclipse/EGit 配置为使用外部差异编辑器和合并工具?我一直在寻找一种方法来使用 BeyondCompare 或 DiffMerge 或 Kaleidoscope 之类的东西,但到目前为止还没有找到配置它的方法。

我意识到 BC 有自己的插件,但它在 Egit 上下文中不起作用(即:查看历史记录并与工作树进行比较时等)。

我正在运行 Eclipse 3.7SR2 (Indigo) 和 eGit 2.1.0。我尝试在我的 .gitconfig 中添加一些东西以使用外部差异工具,但 Eclipse 仍然在它自己的比较窗口中打开这些文件。

【问题讨论】:

【参考方案1】:

EGit 目前不支持此功能,请参阅 bug 356832,它跟踪此增强功能并包含解决方法。

【讨论】:

感谢您的链接。您了解解决方法吗?我不明白“外部工具”菜单的含义/指的是什么。在查看历史日志/等时,我无法配置任何外部工具来启动 git。 见Eclipse documentation。在错误报告中,用户将其配置为在发生冲突时运行git mergetool。这仅适用于外部合并工具,但不适用于外部差异工具,因为目前还没有办法将选定的提交传递给外部程序。 好的 - 谢谢。没有意识到这一点,这可以解释为什么我无法理解如何让它工作。 我创建了bug 415475 来跟踪为选定的提交提供变量,也可能对其他事情有用。【参考方案2】:

作为一种解决方法,您可以尝试使用 Eclipse 插件“外部比较”(请参阅​​ https://sourceforge.net/projects/externalcompare)。此插件在外部编辑器中打开内部 eclipse 编辑器的内容。

【讨论】:

似乎不适用于 EGit。尝试在 Win7 上使用 Eclipse 4.7.1 和 WinMerge【参考方案3】:

您可以在 Eclipse 中使用 kdiff3 进行 GIT 合并和比较:

按照以下步骤设置 kdiff3 以在 eclipse 中合并 git 冲突:

    让 git 创建一个配置文件

如果您的用户目录中已经有一个 .gitconfig 文件,则可以跳过

Windows 用户:

%userprofile%(复制粘贴到资源管理器地址栏中)

一个名为“.gitconfig”的文件需要存在

1.1 打开一个cmd窗口,执行:

git config --global --edit
配置文件已创建。

    打开配置文件“.gitconfig” 2.1 添加以下行注册kdiff3作为git的diff和merge工具(自定义路径到你需要):

    [difftool "kdiff3"] 路径 = "C:\Program Files\KDiff3/kdiff3.exe" #

    [合并工具“kdiff3”] 路径 = "C:\Program Files\KDiff3/kdiff3.exe" #trustExitCode = true #

注意:这将是注册您喜欢的任何其他支持的合并工具的位置。

    创建一个名为“git merge”的新“程序”“外部工具配置”以在 Eclipse 中执行合并! 3.1 参数选择如下:

地点:

C:\Program Files\Git\bin\git.exe

工作目录:

$git_work_tree

参数:

mergetool --tool=kdiff3

要执行合并,请使用标准 eclipse 合并,一旦工作区显示冲突状态(项目上的红色标记可见),您标记一个您希望合并的项目并启动我们在上面列出的步骤中创建的“外部工具配置”

合并将开始,kdiff3 窗口将弹出。 从现在开始,继续您的业务,仅当您对合并结果感到满意时才保存文件,因为如果您保存了文件,kdiff 将提供积极的合并反馈。

【讨论】:

以上是关于无论如何要在 Eclipse 中使用带有 EGit 的外部差异编辑器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 EGit 克隆创建 Eclipse 项目

在 Eclipse-CDT Juno 中禁用 EGit

如何让Egit记住密码和用户名?

Eclipse添加EGIT方法

Egit 工作目录与 Eclipse 中的项目

Eclipse上安装GIT插件EGit及使用