wiki:TimingAndEstimationSVNPostCommitHook

Version 2 (modified by Russ Tyndall, 17 years ago) (diff)

--

Using a Subversion commit hook To Interact With TimingAndEstimationPlugin

Note: This information was taken from http://trac.edgewall.org/wiki/TimeTracking#UsingaSubversioncommithookoptional

The contrib/trac-post-commit-hook script is a very convenient tool to interact with Trac's ticket system on commit. It allows to modify time tracking values and ticket state through special commit messages.

  • Copy trac-post-commit-hook into /usr/share/trac/contrib.
  • Create a script hooks/post-commit in your Subversion repository with the content below (modify TRAC_ENV to point to your local Trac project).
  • Set the executable bit: chmod 755 hooks/post-commit.
REPOS="$1"
REV="$2"
LOG=`svnlook log -r $REV $REPOS`
AUTHOR=`svnlook author -r $REV $REPOS`
TRAC_ENV='/var/trac/test'

/usr/bin/python /usr/share/trac/contrib/trac-post-commit-hook \
  -p "$TRAC_ENV"  \
  -r "$REV"       \
  -u "$AUTHOR"    \
  -m "$LOG"

You can now use special keywords in your commit message to modify Trac tickets. The available commands are:

refs #idAdds a reference to the ticket's Changelog
re #idAdds a reference to the ticket's Changelog
closes #idCloses the ticket
fixes #idCloses the ticket

The time spent is specified in parenthesis. :

ex. re #853 (1) adds one hour to the ticket 853

See contrib/trac-post-commit-hook for details (after applying the patch).

Examples:

svn commit -m 'Added time tracking, closes #1 (1), refs #2 (.5)'

This closes ticket #1, increases the time spent by 1 hour. It adds an entry to the Changelog of ticket #2, increases the time spent by .5 hours.