Prerequisite: a functioning CruiseControl build loop working from a CVS repository.
- get jCVS http://www.jcvs.org/download.html
- configure jCVS Servlet for your project (this is really easy imho)
- modify reporting/jsp/xsl/modification.xsl by changing the line
<td class="modifications-data">
<xsl:value-of select="project"/>/<xsl:value-of select="filename"/>
</td>
to
<td class="modifications-data">
<xsl:element name="a">
<xsl:attribute name="href">http://hostname:port/jcvslet/JCVSlet/log/jcvsprojectname/cvsprojectname/<xsl:value-of select="project"/>/<xsl:value-of select="filename"/></xsl:attribute>
<xsl:value-of select="project"/>/
<xsl:value-of select="filename"/>
</xsl:element>
</td>
(The "http://hostname:port" is worth adding so that the link will work with the HtmlEmailPublisher.)
This is all it takes to get a functional link from both the html email and the web page to the history of the file in jCVS.
Note: because the xsl maps to a particular jcvs/cvs project this will only work for one project per xsl file.
Prerequisite: a functioning CruiseControl build loop working from a CVS repository.
get jCVS http://www.jcvs.org/download.html
configure jCVS Servlet for your project (this is really easy imho)
modify modification.xsl by changing the line
<td class="modifications-data"><xsl:value-of select="project"/>/<xsl:value-of select="filename"/></td>
to
<td class="modifications-data"><xsl:element name="a"><xsl:attribute name="href">http://hostname:port/jcvslet/JCVSlet/log/jcvsprojectname/cvsprojectname/<xsl:value-of select="project"/>/<xsl:value-of select="filename"/></xsl:attribute><xsl:value-of select="project"/>/<xsl:value-of select="filename"/></xsl:element></td>
(The "http://hostname:port" is worth adding so that the link will work with the HTMLEmailPublisher.)
This is all it takes to get a functional link from both the html email and the web page to the history of the file in jCVS.
Note: because the xsl maps to a particular jcvs/cvs project this will only work for one project per xsl file.
Igor Semenko: If you have the same project name in CruiseControl and JCVS you could avoid hardcoding project name. Apply the following to the modifications.xsl:
<td class="modifications-data">
<xsl:variable name="project.name" select="cruisecontrol/info/property[@name='projectname']/@value"/>
<xsl:element name="a">
<xsl:attribute name="href">http://hostname:port/jcvslet/JCVSlet/log/<xsl:value-of value="$project.name"/>/<xsl:value-of select="project"/>/<xsl:value-of select="filename"/></xsl:attribute>
<xsl:value-of select="project"/>/
<xsl:value-of select="filename"/>
</xsl:element>
</td>