[Changes] - DROP SUPPORT FOR GITS OLDER THAN VERSION 1.7.2 !!! Previously Git::Hooks supported Gits since version 1.6.0. [Fixes] - Git::More: the methods filter_files_in_* no longer return submodule paths when they change, since most plugins assume they can apply git-cat-file and other Git commands on the paths returned, but they fail on submodule paths.
The Git::More filter_files_in_* methods return lists of files changed in a commit or a range of commits. When submodules are used the names of their paths were being returned in the list, which caused problems when they were being fed to the git-cat-file command. So, now we pass the option --ignore-submodules to the git-diff-* commands so that the module paths aren't returned anymore.
The git-check-mailmap command is available since Git 1.8.4. Older Gits don't have it and Git::Hooks should explain this to the user.
[New features] - CheckCommit: Add new plugin Git::Hooks::CheckCommit which checks commit information such as author and committer names and emails and commit signatures. - CheckJira: New functionality to insert a comment about the commit on the JIRA issue during the post-rewrite hook. - CheckLog: Add option checklog.ref to restrict the references on which the checks must be performed, making it equivalent to the checkjira.ref option. - Add support for the push-to-checkout hook, new as of Git 2.4.0. [Changes] - The changes implemented on version 1.7.0 in the function Git::More::get_commit were reverted because they imposed a performance penalty on every call, even though most of them wouldn't use the new information about commit signatures. - Skip checks for users configured as githooks.admin on Gerrit's patchset-created hook. [Fixes] - CheckJira: Use checkjira.ref option in the patchset-created hook too. [Thanks] Kudos to Mikko Koivunalho who provided code and ideas for most of the new features in this release.
Original idea and code contributed by Mikko Koivunalho . Ref:  #18
This reverts commit 7f85a87. In order to show information about commit signatures Git has to invoke 'gpg --verify' for each commit, which we shouldn't do unless we need the information. Since this funcionality wasn't used yet I'm reverting it as a bug fix and I'll not bump the major version.
[Fixes] - CheckLog: the body-max-width configuration don't check the size of indented lines in the commit messages since they're normally used for quotation or by Git itself to list, for example, the files conflicted on a merge. - Show some Git errors during the test suite which were being suppressed.
Only lines starting with a non-whitespace character should be checked against the limit. It's a common style to quote things with indented lines and we like to make those lines free of any restriction in order to keep the quoted text authentic.
[New features] - CheckFile: New githooks.checkfile.size option imposes a limit to the maximum size of files added to the repository. - New function Git::More::get_sha1 returns the SHA1 associated with a revision expression. - Git::More::get_commit(s) functions return information about commit signatures. [Changes] - CheckLog plugin error messages now show the full SHA1 of commits instead of a 7-letter prefix to avoid potential ambiguities. [Fixes] - CheckLog: The githooks.checklog.title-required option when false was disabling all other title checks. - Git::More::get_commit(s) functions now UTF-8 encode its results. - Git::More::get_commit(s) functions were returning a hash with the wrong key 'commmitter_name'. [Internal changes] - Git::More::get_commit(s) functions now cache results avoiding repeated invocations of git-rev-list for different plugins.