【问题标题】:Egit in Eclipse doesn't execute pre-commit hookEclipse 中的 Egit 不执行预提交挂钩
【发布时间】:2020-09-03 07:10:21
【问题描述】:

我正在尝试在 Eclipse 中插入 egit 以运行我的预提交挂钩。但这似乎不起作用。

我发现了一个类似的SO Question,但这似乎不适用于我的情况。

这是我所需要的所有工具

  1. GitForWindows 到位
  2. 已配置预提交挂钩
    • 在命令行和 Tortoise git 中也能正常工作。

根据上述链接问题的答案和 cmets 部分的建议,我确实在 C:\Program Files\Git\bin 中添加了 cygpath.exe 空文件并将其放入路径中。另外,我验证了cygpath.exe 已经在C:\Program Files\Git\usr\binssh.exe, bash.exe 中可用。

同样,C:\Program Files\Git\binC:\Program Files\Git\usr\bin 在我的 Windows 10 中的环境变量下添加到系统变量和用户变量中。

其他信息

  • Eclipse 版本:光子发布 (4.8.0)
  • Eclipse Egit:5.x 版本

【问题讨论】:

  • 您将在 Eclipse 论坛中找到更多信息:eclipse.org/forums/…
  • @howlger:感谢您的链接,但这没有帮助

标签: eclipse egit


【解决方案1】:

Windows 上的 EGit/JGit 中的钩子不需要安装 Git for Windows(JGit 在 Java 中实现 Git,它不会重定向到命令行 Git)。

cygpath.exe安装目录必须在PATH,因为Windows上需要Cygwin才能执行Git hook(即bash脚本)。

在您的情况下,空的cygpath.exe 文件将导致使用错误的目录。

有关更多详细信息,请参阅this Eclipse forum discussion 或查看JGit Java code here

另见blog post by Christoph Zauner with more details(请注意,支持的挂钩列表已过时,但概念仍然相同)。

【讨论】:

  • @howgler: 我在另一个目录而不是默认的.hooks/ 中配置了钩子,并在config 中进行了更新,但现在为了使egit 插件能够理解,只需将预提交文件放在.hooks 中即可部分工作。但是,我的 powershell 控制台输出未显示在 eclipse egit 警报框中。它只是说,`被“pre-commit”钩子拒绝。`
  • 是的。不幸的是,这尚未实施。请参阅Eclipse bug 536659(您可以投票支持此错误并在那里发表评论)。
  • 这篇博客深入探讨了这个问题,值得一读以更好地理解:zauner.nllk.net/post/0001-git-hooks-currently-supported-by-jgit
  • @Robert 感谢您的链接。我已将其添加到我的答案中。
猜你喜欢
  • 2021-09-10
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
相关资源
最近更新 更多