1. 04 Apr, 2013 2 commits
  2. 10 Oct, 2012 1 commit
    • Chuck Atkins's avatar
      Make all hook references relative to thier location · 646b891d
      Chuck Atkins authored and Brad King's avatar Brad King committed
      Some hooks were getting referenced directly via $GIT_DIR/hooks while at
      other times getting referenced relative via ${BASH_SOURCE%/*}.  By making
      all references relative then these hooks can reside in a different folder
      and still be daisy-chained by other hooks.
  3. 29 Feb, 2012 1 commit
    • Brad King's avatar
      Set GIT_DIR if not already set · 5ebbe2da
      Brad King authored
      Although it seems reasonable to expect GIT_DIR to be set when
      hooks are invoked, the "git help hooks" documentation does not
      guarantee it.  On msysGit 1.7.8 (and perhaps others) "git gui"
      runs prepare-commit-msg without setting GIT_DIR.  Set GIT_DIR
      at the beginning of each commit hook if it is not already set.
  4. 06 Feb, 2012 1 commit
  5. 24 Oct, 2011 3 commits
    • Brad King's avatar
      Merge branch 'itk-hook-cleanup' into hooks · ad08c209
      Brad King authored
    • Matt McCormick's avatar
      Remove pre-commit-style. · 4b2beb61
      Matt McCormick authored and Brad King's avatar Brad King committed
      These pre-commit hooks where added to the ITK specific hook chain since all
      projects do not use them.
      Change-Id: Ifcb41645374914c4f30f7c5f2feb2e5d40a4b3e3
    • Matt McCormick's avatar
      Remove .txx pre-commit check. · 389c1171
      Matt McCormick authored and Brad King's avatar Brad King committed
      This is an ITK specific check.  It is already implemented in
      the ITK Utilities/Hooks/pre-commit script executed in the hook chain.
      This should allow commiting when on the ITK release branch where .txx
      files still currently exist.
      Change-Id: I1115a2129beb89d6657d599aa6e72bb6515dfca3
  6. 06 Oct, 2011 3 commits
    • Brad King's avatar
      hooks-chain: Look for chains in project hooks config · 3bde0fa9
      Brad King authored
      If a local hook chain rule is not in the local git configuration
      check for a value defined in .hooks-config.bash:
      This allows project to configure chained hooks without adding any
      values to the local git configuration.  Since the project hooks
      config can be versioned with the hook scripts it references this
      ensures a consistent state.
    • Brad King's avatar
      Load local hooks configuration from work tree · 18358af3
      Brad King authored
      Look for a ".hooks-config.bash" file at the top of the work tree.
      Load it in each hook to get per-project configuration.  Currently
      we do not define any config options, but this adds the framework.
    • Brad King's avatar
      pre-commit: Remove KWStyle and uncrustify support · e8180f20
      Brad King authored
      These checks can be added in projects that want them using the
      pre-commit hook chaining.
  7. 19 Jul, 2011 1 commit
    • Matt McCormick's avatar
      ENH: pre-commit: Prevent add .txx files. · f059ba93
      Matt McCormick authored
      A transition occurred in the toolkit to move all .txx files to .hxx files.
      This prevents accidental additions of or renames to .txx files.
      Change-Id: Id4ace9cfca2c56506d93396366d146173e015003
  8. 14 Jun, 2011 1 commit
  9. 26 Jan, 2011 2 commits
  10. 13 Jan, 2011 1 commit
  11. 11 Jan, 2011 1 commit
  12. 30 Dec, 2010 3 commits
  13. 17 Nov, 2010 1 commit
    • Brad King's avatar
      commit-msg: Allow long first lines starting in "Revert " · 125100ba
      Brad King authored
      Revert commits always have longer first lines than the commit they
      revert.  Do not reject those that happen to go over the threshold.  It
      is much simpler if the "git revert" command creates the commit without
  14. 16 Nov, 2010 1 commit
    • Brad King's avatar
      Chain to script configured by "hooks.chain-<hook>" · dc31be5b
      Brad King authored
      Chain the pre-commit, commit-msg, and prepare-commit-msg hooks to
      locally configured scripts.  Interpret relative paths with respect to
      the working directory where the hooks run (top of work tree).  This
      allows project setup scripts to add project-specific checks for each of
      these hooks.
  15. 05 Nov, 2010 1 commit
  16. 03 Nov, 2010 1 commit
    • Gaëtan Lehmann's avatar
      make the check for KWStyle executable non blocking · b32ecce7
      Gaëtan Lehmann authored and Matt McCormick's avatar Matt McCormick committed
      At this time, a contributor won't be able to commit a change if KWStyle
      is not installed on the computer. KWStyle is not a very common program,
      and so is likely to have to be installed by hand. This increase the work
      needed to be able to contribute to ITK.
      With this change a warning is displayed if KWStyle is not installed
      but the commit is not blocked.
      Change-Id: I0719ee5ac6e048120504bbdc4dc022043c0f0ded
  17. 27 Sep, 2010 2 commits
    • Brad King's avatar
      Merge branch 'style-checks' into hooks · c4607863
      Brad King authored
    • Matt McCormick's avatar
      pre-commit: Apply uncrustify and KWStyle check for modified files. · d5bb0764
      Matt McCormick authored
      uncrustify (uncrustify.sourceforge.net) is applied to changed files prior to
      This feature is off by default.  To enable this behavior, set
        git config hooks.uncrustify true
      By default, the behavior of git-mergetool is used to review the changes
      uncrustify makes before they are added to the commit.  For more information on
      this behavior, see
        git help mergetool
      KWStyle is run on the changed C++ files and the commit is aborted if the files
      do not pass the test.  A file similar to the original is saved with a '*.kws'
      extension so that line numbers referenced in the error message can be examined.
      The test is off by default.  To enable this behavoir, set
        git config hooks.KWStyle true
      Project specific uncrustify and KWStyle configuration files are set with 'git
      config'.  For example,
        git config hooks.uncrustify.conf path/to/uncrustify.conf
        git config hooks.KWStyle.conf path/to/KWStyle.conf
        git config hooks.KWStyle.overwriteRulesConf path/to/overwrite.conf # optional
      If the appropriate values have not been set, die() is called.  An
      optional KWStyle overwrite rules file can also been configured.
      The files on which to run the style checks must also be identified in the
      repository's '.gitattributes'.  For example,
        *.h    hooks.style
        *.cpp  hooks.style
      Or, to only enable a subset of style hooks,
        *.h    hooks.style=KWStyle
        *.cpp  hooks.style=KWStyle,uncrustify
      Change-Id: Ia6b2d4136af3002eb0ec5d36f03c50df928917f4
  18. 15 Sep, 2010 1 commit
    • Brad King's avatar
      pre-commit: Allow submodule check to be disabled · 19f86ec1
      Brad King authored
      If hooks.submodule is 'false' disable all checks.  If an individual
      hooks.<module>.update is 'true' then accept any update for that module.
      Leave these options out of the hints printed.  Developers that know what
      they are doing will be able to find them by reading the hook source.
  19. 14 Sep, 2010 1 commit
  20. 31 Aug, 2010 1 commit
  21. 30 Aug, 2010 6 commits
  22. 27 Aug, 2010 2 commits
  23. 25 Aug, 2010 1 commit
  24. 10 Aug, 2010 1 commit
    • Brad King's avatar
      pre-commit: Check submodules staged with other changes · 48e72dd1
      Brad King authored
      Since Git does not automatically update submodule checkouts when
      checking out a new version in the work tree, it is common to have
      locally modified submodule references.  Therefore it is easy to stage
      such modifications with other changes by accident, especially with
      commands like "git add -u" or "git commit -a".  The result is almost
      always wrong if the submodule change is not intended.
      Prevent such mistakes by requiring an extra step to commit submodule
      link updates with other changes.  When this case is detected, print a
      message describing the situation and provide cut-and-paste instructions
      to proceed.
  25. 03 Aug, 2010 1 commit
    • Gaëtan Lehmann's avatar
      Reference bash explicitly in shebang lines · 8653d286
      Gaëtan Lehmann authored and Brad King's avatar Brad King committed
      On Solaris, where /bin/sh is actually sh, not bash, some expressions
      like $() are not supported.  Git's own scripts on this machine are
      configured to use "#!/bin/bash".  Change our shebang line to
        #!/usr/bin/env bash
      which should work almost everywhere.