Chiudere ticket Trac con un commit da SVN

From RVM Wiki
Revision as of 15:42, 12 January 2010 by Gabriele.vivinetto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Debian Etch

  • Copiare lo script di trac:
zcat /usr/share/doc/trac/contrib/trac-post-commit-hook.gz | \
     sudo tee /path/to/svn/project/hooks/trac-post-commit-hook >/dev/null
sudo chmod 755 /path/to/svn/project/hooks/trac-post-commit-hook
  • Creare lo script hook di SVN:
sudoedit /path/to/svn/project/hooks/post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
LOG=`svnlook log -r $REV $REPOS`
AUTHOR=`svnlook author -r $REV $REPOS`
TRAC_ENV='/var/trac/test'

/usr/bin/python /path/to/svn/project/hooks/trac-post-commit-hook \
  -p "$TRAC_ENV"  \
  -r "$REV"       \
  -u "$AUTHOR"    \
  -m "$LOG"
sudo chmod 755 /path/to/svn/project/hooks/post-commit

Windows

Vedi How do I implement the Post Commit Hook with Trac & SVN in a Windows Environment?

  • Creare
X:\path\to\svn\projects\hooks\post-commit.cmd
@ECHO OFF


:: POST-COMMIT HOOK
::
:: The post-commit hook is invoked after a commit.  Subversion runs
:: this hook by invoking a program (script, executable, binary, etc.)
:: named 'post-commit' (for which this file is a template) with the 
:: following ordered arguments:
::
::   [1] REPOS-PATH   (the path to this repository)
::   [2] REV          (the number of the revision just committed)
::
:: The default working directory for the invocation is undefined, so
:: the program should set one explicitly if it cares.
::
:: Because the commit has already completed and cannot be undone,
:: the exit code of the hook program is ignored.  The hook program
:: can use the 'svnlook' utility to help it examine the
:: newly-committed tree.
::
:: On a Unix system, the normal procedure is to have 'post-commit'
:: invoke other programs to do the real work, though it may do the
:: work itself too.
::
:: Note that 'post-commit' must be executable by the user(s) who will
:: invoke it (typically the user httpd runs as), and that user must
:: have filesystem-level permission to access the repository.
::
:: On a Windows system, you should name the hook program
:: 'post-commit.bat' or 'post-commit.exe',
:: but the basic idea is the same.
:: 
:: The hook program typically does not inherit the environment of
:: its parent process.  For example, a common problem is for the
:: PATH environment variable to not be set to its usual value, so
:: that subprograms fail to launch unless invoked via absolute path.
:: If you're having unexpected problems with a hook program, the
:: culprit may be unusual (or missing) environment variables.
:: 
:: Here is an example hook script, for a Unix /bin/sh interpreter.
:: For more examples and pre-written hooks, see those in
:: the Subversion repository at
:: http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/ and
:: http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/


setlocal


:: Debugging setup
:: 1. Make a copy of this file.
:: 2. Enable the command below to call the copied file.
:: 3. Remove all other commands
::call %~dp0post-commit-run.cmd %* > %1/hooks/post-commit.log 2>&1


:: Call Trac post-commit hook
call %~dp0trac-post-commit.cmd %* || exit 1


endlocal
  • Creare
X:\path\to\svn\projects\hooks\trac-post-commit.cmd

inserendo il vaolore corretto in

SET TRAC_ENV=X:\path\to\trac\project
@ECHO OFF
::
:: Trac post-commit-hook script for Windows
::
:: Contributed by markus, modified by cboos.


:: Usage:
::
:: 1) Insert the following line in your post-commit.bat script
::
:: call %~dp0\trac-post-commit-hook.cmd %1 %2
::
:: 2) Check the 'Modify paths' section below, be sure to set at least TRAC_ENV


setlocal


:: ----------------------------------------------------------
:: Modify paths here:


:: -- this one *must* be set
SET TRAC_ENV=X:\path\to\trac\project


:: -- set if Python is not in the system path
SET PYTHON_PATH=


:: -- set to the folder containing trac/ if installed in a non-standard location
SET TRAC_PATH=
:: ----------------------------------------------------------


:: Do not execute hook if trac environment does not exist
IF NOT EXIST %TRAC_ENV% GOTO :EOF


set PATH=%PYTHON_PATH%;%PATH%
set PYTHONPATH=%TRAC_PATH%;%PYTHONPATH%


SET REV=%2


:: Resolve ticket references (fixes, closes, refs, etc.)
Python "%~dp0trac-post-commit-resolve-ticket-ref.py" -p "%TRAC_ENV%" -r "%REV%"


endlocal
  • Creare
X:\path\to\svn\projects\hooks\trac-post-commit-resolve-ticket-ref.py

prelevandolo in base alla versione di trac in uso dall'url:

http://svn.edgewall.com/repos/trac/branches/0.11-stable/contrib/trac-post-commit-hook

Utilizzo

  • Per chiudere il ticket numero xxx, inserire nel messaggio di commit:
closes #xxx
  • Per aggiungere una nota al ticket xxx:
refs #xxx


Riferimenti