在Eclipse中突出显示修改的行

85
在Netbeans中,如果我打开一个在版本控制下的文件,则修改的行会在左侧突出显示。 (绿色代表新行,蓝色代表修改过的行)
在Eclipse中是否有类似的效果?

可能是Can I setup eclipse to show code changes (I have svn)的重复问题。 - BuZZ-dEE
8个回答

157
  1. 打开首选项窗口
  2. 搜索"diff"
  3. 选择快速差异
  4. 将"使用此参考源"更改为SCM提供程序(如CVS,SVN或Git)

默认情况下,它会比较磁盘上的最新版本,如果您保存了文件,则根本没有差异。您必须激活与SCM存储库的比较。我不确定如果您有多种类型的SCM会发生什么,因为这只是单个选择。


3
似乎要让快速比较显示git diff,Eclipse 项目需要是一个git项目。否则,Eclipse 会像在上面的第4步中仍选择了“版本在磁盘上”一样运行。所以,为了让它改为使用git diff,我不得不使用“文件 -> 导入 -> Git -> 从Git创建项目”来为现有代码目录创建一个项目。此建议的来源:https://www.eclipse.org/forums/index.php/mv/msg/331002/846869/#msg_846869 - cornelius
1
非常感谢你,丹。哦天啊..这个美丽的功能默认是禁用的!它在Eclipse中为我工作,适用于SVN/Subclipse。注意:伙计们..不要期望完整的行被突出显示。垂直标尺/概览标尺显示您选择的颜色。 - supernova
@supernova 但是如果你点击标尺颜色,它会突出显示文本。这有点糟糕,但还算可用。 - Duncan Jones
1
当我在编辑器中输入或更改内容时,可以看到带有颜色的高亮行,但是当我按下ctrl+s或保存文件时,颜色会消失。但是我希望它们在我没有提交diff时保持不变,就像在Netbeans中一样。如何做到这一点? - Oleg Abrazhaev
1
如果它不起作用,尝试关闭项目并重新打开它。 - Jona
显示剩余4条评论

5

使用Subversive,您可以执行Team > Show Annotations操作,它将使用该行的作者和最后修改日期来注释这些行。


谢谢。这大致是我想要的。但如果它只显示仓库当前版本和我所做的本地更改之间的差异,那就太好了。这可能吗? - Sudar
你可以将注释限制在一定的修订版本范围内。从最近的修订版本选择到HEAD可以模拟你可能想要的情况(在我这里,HEAD..HEAD会导致操作失败)。 - thSoft

5
在Eclipse中使用其Quick Diff功能。这很容易做到:
  1. 转到窗口 -> 首选项 -> 通用 -> 编辑器 -> 文本编辑器 -> Quick Diff。这是可以配置的对话框。
  2. 通过启用选项Enable quick diff,打开快速差异。
  3. 从下拉列表Use this reference source中选择需要使用Quick Diff的版本控制系统。 Git、SVN和CVS应该在此处出现。如果安装了MercurialEclipse插件,则会出现Mercurial。
  4. 概述标尺是编辑器滚动条右侧的标尺。如果想要看到未提交的行在其上被标记,请启用选项Show differences in overview ruler
  5. 选择应用并确定。关闭所有编辑器窗口,并重新打开您想在编辑器中查看的源文件。
您应该能够在通常显示行号的左侧栏中看到新添加、修改或删除的行以颜色标记。所使用的颜色是在Quick Diff对话框中设置的(请参见上述步骤)。您也可以在右侧的概述标尺上看到这些未提交的位置标记。

5

对于 Eclipse版本:2019-03(4.11.0) ,请按以下操作:

  1. 选择“窗口”
  2. 选择“首选项”
  3. 转到“常规 -> 编辑器 -> 文本编辑器 -> 快速差异”
  4. 勾选“启用快速差异”
  5. 勾选“在概览标尺中显示差异”
  6. 如果您想在保存本地副本后保留更改,则需要告诉Eclipse将本地副本与存储库版本进行比较。为此,请相应更改引用源

    enter image description here


4

右键单击文件 > 团队 > 显示注释
代码左侧将出现一个棕色的带子(代表已经提交的行),而修改过的行将以白色显示。


在打开每个文件时自动显示团队注释是否可行? - Henrique de Sousa

3

2

如果你想在使用Git时在Eclipse的“概览标尺”中显示基于修订的更改突出显示(即不会在保存文件后消失),则至少需要做两件事:

  1. 在导入之前,请确保选中“首选项”>“团队”>“Git”>“项目”>“自动共享位于Git存储库内的项目”,或者使用“导入...”>“Git”>“从Git导入项目”将项目导入到工作区中(正如@cornelius在另一个答案的评论中指出的)
  2. 启用快速差异并选择“Git修订版”作为参考来源:首选项>编辑器>文本编辑器>快速差异

关于导入的部分有一些错误。在大多数情况下,即使没有使用专用的导入向导,项目也会与Git链接起来。如果缺少这个功能,可以在项目上右键单击>团队>共享到Git,绑定将自动完成。关于导入时的冻结,请通过http://bugs.eclipse.org报告它作为一个错误,并提供一些重现步骤。 - Mickael
@Mickael 是的,有时从Maven导入会自动钩连到git。我安装了一个正确连接的Eclipse Neon和另一个无法连接的版本。我还没有找到区别所在。 - David Avendasora
1
也许是在偏好设置 > 团队 > Git > 项目 中自动共享位于Git存储库内的项目? - Mickael
@Mickael 嗯...嗯...好的。我会编辑我的答案以反映这一点。 - David Avendasora

0
在Eclipse中,当你修改文件并保存之前,它会将被修改的行高亮显示出来。这个高亮的效果就是在编辑器左侧面板上改变颜色以标识被修改的行。

我认为作者正在寻找一种方法来查看项目提交之间已更改的行,而不是文件保存之间的行。 - Benjamin Manns
正如Benjamin所提到的,我正在寻找项目提交之间的更改,而不是文件保存之间的更改。 - Sudar
抱歉,我认为在保存之间。但无论如何,这对于不知道的人也很有用。 - GuruKulki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接