pátek 2. října 2009

SVN a Trac hooks

SVN a Trac hooks slouží k provázání SVN a Trac. Commit do SVN se nepovolí pokud není v komentáři odkazovaný nějaký ticket. Během commitu se v souborech nahradí proměnné odkazující na aktuální verzi, datum a čas commitu a člověka, který soubor commitoval. Po commitu se automaticky připojí komentář ke všem odkazovaným ticketům a případně se tickety zavřou.

Instalace

Trac
  • Nakopírovat skripty trac-pre-commit-hook a trac-post-commit-hook do /home/trac/projekty/conf (pozor na stažení správně verze skriptů podle verze nainstalovaného Trac)
  • Nastavit práva pro spuštění: chmod u+x /home/trac/projekty/conf/trac-pre-commit-hook /home/trac/projekty/conf/trac-post-commit-hook

SVN
  • mv /home/svn/projekty/hooks/pre-commit.tmpl /home/svn/projekty/hooks/pre-commit
  • Upravit /home/svn/projekty/hooks/pre-commit na
    REPOS="$1"
    TXN="$2"
    TRAC_ENV="/home/trac/projekty/"
    LOG=`/usr/bin/svnlook log -t "$TXN" "$REPOS"`
    /home/trac/projekty/conf/trac-pre-commit-hook "$TRAC_ENV" "$LOG" || exit 1
    
    # Exit on all errors.
    set -e
    
    # All checks passed, so allow the commit.
    exit 0
  • Nastavit práva pro spuštění: chmod u+x /home/svn/projekty/hooks/pre-commit
  • mv /home/svn/projekty/hooks/post-commit.tmpl /home/svn/projekty/hooks/post-commit
  • Upravit /home/svn/projekty/hooks/post-commit na
    REPOS="$1"
    REV="$2"
    TRAC_ENV="/home/trac/projekty/"
    
    /home/trac/projekty/conf/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"
    
  • Nastavit práva pro spuštění: chmod u+x /home/svn/projekty/hooks/post-commit
  • Ve skriptech doplnit lokalizavi klíčových slov: vizrefoprava
Nahrazování proměnných

Nastavení se musí udělat na klientu v souboru <uživatelský adresář>\Application Data\Subversion\config pomocí auto-props. A když už se edituje, tak doporučuju nastavit global-ignore. Moje nastavení:
[miscellany]
global-ignores = *.~* *.bak *.dcu *.DCU *.old *.pyc tags *.swp
enable-auto-props = yes

[auto-props]
*.txt = svn:eol-style=native
*.py = svn:eol-style=native;svn:keywords="Date Author Revision Id"
*.pas = svn:eol-style=native;svn:keywords="Date Author Revision Id"
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
V souborech *.pas a *.py se budou při commitu nahrazovat aktuálním stavem tyto řetězce:
  • $Rev$
  • $Author$ 
  • $Date$
  • $Id$

Žádné komentáře:

Okomentovat