【问题标题】:Does NetBeans ignore my Git pre-commit hook?NetBeans 会忽略我的 Git 预提交挂钩吗?
【发布时间】:2012-07-06 22:51:51
【问题描述】:

我正在尝试为 Git 使用预提交挂钩。钩子如下所示:

#!/bin/bash
echo "fail"
exit 1

因此,它总是会失败,即我的 Git 提交应该失败。

如果我用 git 添加一些东西,然后在命令行中提交它,我很可能会失败并且我的提交失败。

但是如果我使用 NetBeans 提交,我的预提交挂钩不会被执行。它似乎只是忽略它。

我正在使用Ubuntu 和 NetBeans 7.1。预提交钩子的权限是 -rwxrwxrwx(只是为了测试目的将其更改为 777)。

这怎么可能?

【问题讨论】:

    标签: git netbeans pre-commit-hook


    【解决方案1】:

    看起来是这样的。是的。

    如果您查看NetBeans Git Integration Plan,您会注意到根本没有计划支持挂钩。

    除此之外,我不会依赖任何 Git 的 IDE 集成,而是依赖 use the command line。如果您决定明天放弃 NetBeans 并改用 Eclipse 会怎样?还是 Visual Studio?还是KDevelop?您将不得不学习一个新的 IDE,并再次将 Git 集成到 IDE 中。而且您必须希望 IDE 插件的开发人员确实实现了您需要的 Git 子集。这是浪费时间。

    此外,NetBeans 中的 Git 实现还远未完成。名为nice-to-havestashcherry-pickrebase)的功能非常有用。甚至没有提到其他killer功能(git bisect任何人?)。

    Take the command line。学习使用 Git。节省您的时间。


    查看NetBeans Git Integration PlanM2,可以看出Git 的目标后端不应是Git 的本机(即特定于平台)实现,而是jgit。这完全是脑残的做法。几乎你要开发的每个平台都有 Git 的本机实现。 JNI 存在。为什么不采用特定于平台的二进制文件(肯定比从头开始的命令的纯 Java 实现更好地测试),放一个小的 JNI 包装器,你就完成了?是的,您将失去一次编写,到处运行,但稳定性和代码质量会提高。

    【讨论】:

    • 顺便说一句,当我问这个问题时,我认为 Netbeans 会使用 /usr/bin/git。我猜它没有。
    • @meijuh:查看有关/usr/bin/git使用的更新答案
    • 我完全同意你的回答。调用 PATH 中配置的 git 命令应该可以正常工作。分析命令的返回值,stdout 和 stderr 上打印的内容应该是一个很好的解决方案。更好的是确实使用 JNI。很遗憾他们选择了 JGit,也许他们这样做是因为 Git 是专门针对 Linux 的?
    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2019-12-25
    • 2015-09-10
    • 1970-01-01
    相关资源
    最近更新 更多