Chiudere ticket Trac con un commit da SVN: Difference between revisions
Jump to navigation
Jump to search
m New page: Su 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 sud... |
mNo edit summary |
||
| Line 1: | Line 1: | ||
==Debian Etch== | |||
*Copiare lo script di trac: | *Copiare lo script di trac: | ||
| Line 27: | Line 27: | ||
sudo chmod 755 /path/to/svn/project/hooks/post-commit | sudo chmod 755 /path/to/svn/project/hooks/post-commit | ||
==Windows== | |||
Vedi [http://stackoverflow.com/questions/84178/how-do-i-implement-the-post-commit-hook-with-trac-svn-in-a-windows-environment 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 | |||
<pre> | |||
@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 | |||
</pre> | |||
* Creare | |||
X:\path\to\svn\projects\hooks\trac-post-commit.cmd | |||
inserendo il vaolore corretto in | |||
SET TRAC_ENV=X:\path\to\trac\project | |||
<pre> | |||
@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 | |||
</pre> | |||
* 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: | *Per chiudere il ticket numero xxx, inserire nel messaggio di commit: | ||
| Line 33: | Line 177: | ||
*Per aggiungere una nota al ticket xxx: | *Per aggiungere una nota al ticket xxx: | ||
refs #xxx | refs #xxx | ||
==Riferimenti== | ==Riferimenti== | ||
*[http://trac-hacks.org/wiki/TimingAndEstimationSVNPostCommitHook TimingAndEstimationSVNPostCommitHook - Trac Hacks - Plugins Macros etc. - Trac] | *[http://trac-hacks.org/wiki/TimingAndEstimationSVNPostCommitHook TimingAndEstimationSVNPostCommitHook - Trac Hacks - Plugins Macros etc. - Trac] | ||
*[http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook /trunk/contrib/trac-post-commit-hook – The Trac Project] | *[http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook /trunk/contrib/trac-post-commit-hook – The Trac Project] | ||
Latest revision as of 15:42, 12 January 2010
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