Chiudere ticket Trac con un commit da SVN
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