My administration was a bit of a mess last month and I didn't get around to writing down my hours. Now, that's not necessarily a problem cause most of my work is in subversion, so I can always look at the logfile. But filtering out my commits from the other busy bees at the company takes some time. Time to automate things!
You can use svn --verbose --xml log http://yourserver.org/yourrepository
to give you an xml log of all the changes in your projects. If you add a -r{"2006-01-01"}:HEAD
you restrict it to last 1 Januari till now. Redirect the output to an xml file and process that (with saxon or xsltproc for instance) with the following xslt file:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:date="http://exslt.org/dates-and-times" version="1.0"> <xsl:output method="html" encoding="UTF-8" indent="no"/> <xsl:template match="/"> <html> <head> <title>Uren</title> <style> .discreet { font-size: 80%; } @media print { .noprint {display:none} td { font-size: 80%; } } </style> </head> <body> <xsl:apply-templates select="/log"/> </body> </html> </xsl:template> <xsl:template match="log"> <table border="1"> <tr> <th>Date</th> <th>Message</th> <th class="noprint">Changed files</th> </tr> <xsl:apply-templates select="logentry[author='reinout']"/> <!-- ##################################### --> <!-- Change this author name to yours --> <!-- ##################################### --> </table> </xsl:template> <xsl:template match="logentry"> <tr> <td> <xsl:value-of select="date:date(date)"/> </td> <td> <xsl:value-of select="msg"/> </td> <td class="discreet noprint"> <xsl:apply-templates select="paths/path"/> </td> </tr> </xsl:template> <xsl:template match="path"> <div> <xsl:value-of select="."/> </div> </xsl:template> </xsl:stylesheet>
That gives you a handy html overview. It sure saves me at least 15 minutes right now, so it already paid for about half the time it took to make the template :-)
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):