Gustavo Leite de Mendonça Chaves > Git-Hooks-0.036 > TODO.pod


Annotate this POD



Open  1
View/Report Bugs
Source   Latest Release: Git-Hooks-0.047

TO-DO list of niceties for the future of Git::Hooks. ^

The following list is in approximately my order of implementation intention. Any comments or other suggestion are welcome at gnustavo AT

Support Gerrit hooks

Gerrit is a "web based code review and project management tool for Git based projects" ( It's based on JGit ( which, as of 2012-01-14, still doesn't support git's standard hooks.

But Gerrit has its own hook infrastructure and we should support it (

The two hooks that seem to be relevant to Git::Hooks's plugins are patchset-created and ref-updated.

Support the WIN32 Platform

Currently we abort the build on Makefile.PL.

Improve documentation

We need:


Use Locale::TextDomain to internationalize it.

L10N pt_BR

As a first job after i18n I intend to nationalize it to Brazilian Portuguese.

Let the user control which config files to read

Let the user tell which configuration files Git::Hooks should consider. Currently it considers the three default ones (system, global, and local), without knowing which one sets what. Perhaps we could have a new option githooks.extra_config that could be set with an array of filenames to invoke git config --file with in succession. This option, if set in the default configuration files, could tell Git::Hooks to grok an extra set of configuration from specific files.

In CheckAcls implement DENY for ACL operations

Along the lines of NFSv4 ACLs ( I'm thinking about prefixing the what component with a '!'.

Implement equivalents for the SVN::Hooks plugins

In Currently we're missing DenyFilenames and UpdateConfFile. Actually, I'm thinking that UpdateConfFile is too much specific. Perhaps something along the lines of this post-update hook would be more interesting:

Implement the Scott Chacon example hooks


In CheckLog allow for stop words

CheckLog.spelling should have a way to register stop words. I'd have to ask for a change in Text::SpellChecker.

CheckLog should check the footer of the commit log message

The Gerrit default commit-msg implements some checks that could be used here. Some other things to check:

Require Signed-off-by lines (
Duplicate Signed-off-by lines (

Implement the Git::Hooks::CheckWhiteSpace plugin

Some people (e.g. Linus Torvalds) prefer spaces, others prefer tabs.

Some people prefer tab size at 8 characters, others prefer at 4.

This plugin should be able to check these preferences for selected types of files. Some configuration would be like this:

This way, the options are fixed for any file. Would it be desirable to have different options for different kind of files?

Implement the Git::Hooks::CheckFile plugin

Implement a hook to make it easy to perform some checks on added/modified files. For instance, Perl files should be syntax checked. This could be configured somewhat like this:

    CheckFile.rule "\.p[lm]$ perl -c"

The first 'word' in the value would be a regexp used to match the files we're interested in. All that follows would be a command to which the filename would be passed.

This would allow for all kinds of checks specific for some kinds of files. Some interesting ideas here:

syntax highlighting: