Nástroje pro práci se Subversion

Commit Monitor

Program Commit Monitor pro Windows umožňuje sledovat změny v repozitory, které si do něj zadáte a upozorní vás pokud někdo provede commit. Autorem je Stefan Küng (http://tools.tortoisesvn.net/). Podobný program je ještě například SVN Notifier.

Commit Monitor 1.2

Bohužel neznám podobnou aplikaci pro Linux, obvykle se to nahrazuje mailovou konferencí kam chodí automaticky všechny commity pro projekt.

Existují webové nástroje, které podobné informace poskytují o projektech. Google Code a Github například poskytuje RSS o změnách. Podobně třeba Trac nebo jiné systémy, které mají podporu pro SVN.

Případně si to můžete udělat sami, jako například já v PHP.

StatSVN

StatSVN je program napsaný v Javě a slouží k analýze logů. Stánout si ho můžete na http://sourceforge.net/projects/statsvn/.

Použití je potom jednoduché jako první parametr dáte log v xml formátu a jako druhý cestu k aktuální pracovní kopii a potom výstupní adresář pro generované html soubory.

java -jar statsvn.jar  c:\rep\test\test_changelog.xml  \
c:\rep\test\ -output-dir c:\tmp\test

Výstup potom vypadá jako na obrázku. Tento program je zdarma, ale umí většinu statických věcí podobně jako profesionální programy pro práci s repozitory jako je FishEYE i když není zdaleka tak v líbivém kabátě.

StatSVN

Generování changelogu pomocí svn2cl

Subversion utilita svn2cl je běžně dostupná v balíku subversion-tools v Debianu/Ubuntu.

Například pro generování changelogu pro tuto knihu se dělal takto:

/usr/bin/svn2cl --strip-prefix=trunk \
        --break-before-msg=2 \
        --group-by-day \
        --separate-daylogs \
        -i \
        --authors=authors.xml \
        file://localhost/svn/svn-kniha/trunk/ \
        -o changelog.html \
        --html

Soubor authors.xml obsahuje toto:

<?xml version="1.0" encoding="utf-8"?>
    <authors>
        <author uid="abtris"> Ladislav Prskavec &lt;ladislav@prskavec.net&gt;
    </author>
</authors>

Výsledek v textové podobě vypadá nějak takto:

2009-06-17  Ladislav Prskavec <ladislav@prskavec.net>

* [r35] changelog, changelog.html, html/apa.html, html/bi01.html,
  html/ch01.html, html/ch01s02.html, html/ch02.html,
  html/ch02s02.html, html/ch02s03.html, html/ch02s04.html,
  html/ch02s05.html, html/ch03.html, html/ch03s02.html,
  html/ch03s03.html, html/ch04.html, html/ch04s02.html,
  html/ch04s03.html, html/ch04s04.html, html/ch05.html,
  html/ch05s02.html, html/ch05s03.html, html/ch05s04.html,
  html/ch05s05.html, html/ch06.html, html/ch06s02.html,
  html/ch06s03.html, html/ch07.html, html/ch07s02.html,
  html/index.html, html/pr01.html, index.html, make.sh,
  svn-kniha.html, svn-kniha.xml, svn2html.css:

  Update generating.
  Link to changelog.

* [r34] authors.xml, changelog, html/apa.html, html/bi01.html,
  html/ch01.html, html/ch01s02.html, html/ch02.html,
  html/ch02s02.html, html/ch02s03.html, html/ch02s04.html,
  html/ch02s05.html, html/ch03.html, html/ch03s02.html,
  html/ch03s03.html, html/ch04.html, html/ch04s02.html,
  html/ch04s03.html, html/ch04s04.html, html/ch05.html,
  html/ch05s02.html, html/ch05s03.html, html/ch05s04.html,
  html/ch05s05.html, html/ch06.html, html/ch06s02.html,
  html/ch06s03.html, html/ch07.html, html/ch07s02.html,
  html/index.html, html/pr01.html, make.sh, svn-kniha.html:

  Update generating, add make changelog

   ...