<center>
  <h1>The Insurrection Web Tools for Subversion</h1>
</center>
<p>
  This directory tree contains the Insurrection Web Tools for Subversion.&nbsp;
  This includes the XSLT transforms, style sheet, and JavaScript.
</p>
<ul>
  <li>
    <a href="insurrection.js"><code>insurrection.js</code></a>
    <ul>
      This is the JavaScript based configuration file.&nbsp; This contains the
      settings that may need to be changed for the server configuration that
      are referenced within JavaScript.
    </ul>
  </li>
  <br/>
  <li>
    <a href="insurrection.pl"><code>insurrection.pl</code></a>
    <ul>
      This is the Perl based configuration file.&nbsp; This contains the
      settings that may need to be changed for the server configuration that
      are referenced within the Perl CGIs.
    </ul>
  </li>
  <br/>
  <li>
    <a href="insurrection.xsl"><code>insurrection.xsl</code></a>
    <ul>
      This is the XSLT templates for the transform that takes the Subversion repository
      browsing XML and revision history logs and generates the HTML presentation.<br/>
      This file also contains server/install specific configuration information.&nbsp;
      It is not in a separate file as some web browsers do not correctly support
      the XPath document() function for external document.
    </ul>
  </li>
  <br/>
  <li>
    <a href=".htaccess"><code>.htaccess</code></a>
    <ul>
      The Apache <a href=".htaccess"><code>.htaccess</code></a> file for the tools and
      administration CGIs that live in the directory.&nbsp; Note that this references
      the same password file as the <code>mod_authz_svn</code> plugin is configured
      for.&nbsp; Note that this file will need to be edited to match your repository
      location if it is not <code>/svn</code> on the server.
    </ul>
  </li>
  <br/>
  <li>
    <a href="insurrection.conf"><code>insurrection.conf</code></a>
    <ul>
      This is the Apache 2.0.x virtual server configuration file for the svn.* server.&nbsp;
      This is needed to get Insurrection and Subversion to run within a relatively standard
      Apache configuration.
    </ul>
  </li>
  <br/>
  <li><img align="right" src="InsurrectionLogo.gif" />
    <a href="InsurrectionLogo.gif"><code>InsurrectionLogo.gif</code></a>
    <ul>
      The Insurrection Web Tools for Subversion logo.  Special thanks to
      Dan Case from Carroll College for his design input for the logo.&nbsp;
      Note that you will need to make a logo file that is of the same name
      as the host that you are acting as for Insurrection.&nbsp; This is
      a minor additional security step.&nbsp;  For example, if your server
      is <code>http://svn.code-host.net/...</code> then you will need to
      have a file of the name <code>svn.code-host.net.gif</code> that contains
      the logo you want displayed.  Just copy this file to that name and
      you will be all set.
    </ul>
  </li>
  <br/>
  <li>
    <a href="styles.css"><code>styles.css</code></a>
    <ul>
      This is the global stylesheet used in all of the Insurrection web pages.
    </ul>
  </li>
  <br/>
  <li>
    <a href="svnindex.js"><code>svnindex.js</code></a>
    <ul>
      This is the JavaScript used with the <a href="insurrection.xsl"><code>insurrection.xsl</code></a>
      generated HTML and provides for the determination of the actual target URL with
      the repository name.&nbsp; This is something that can not be done within the
      XSLT as the XML input does not contain that information.&nbsp; This also
      implements the display of the optional <a href=".svn_index"><code>.svn_index</code></a>
      file within the browsing of a directory.
    </ul>
  </li>
  <br/>
  <li>
    <a href="admin.pl"><code>admin.pl</code></a>
    <ul>
      A bit of common code used by all the code here to provide some consistent behaviors.&nbsp;
      It is this code that knows how to get the configuration information from the
      <a href="insurrection.xsl"><code>insurrection.xsl</code></a> and
      <a href="insurrection.pl"><code>insurrection.pl</code></a> files.&nbsp;
      Also used to read/validate/update authentication information.&nbsp;
      This is used not only by the <a href="password.cgi"><code>password.cgi</code></a>
      and <a href="admin.cgi"><code>admin.cgi</code></a> pages but by all of the
      repository access pages to validate the access rights.
    </ul>
  </li>
  <br/>
  <li>
    <a href="index.cgi"><code>index.cgi</code></a>&nbsp;&nbsp;&amp;&nbsp;&nbsp;<a href="auth_index.cgi"><code>auth_index.cgi</code></a>
    <ul>
      This CGI produces the main welcome page for the server.&nbsp; It uses the
      <a href="index.template">index.template</a> file and replaces the &lt;repos/&gt;
      tag with the generated table of repositories.&nbsp; It also adds the standard
      header and footer to the page.
    </ul>
  </li>
  <br/>
  <li>
    <a href="index.template"><code>index.template</code></a>
    <ul>
      This is the HTML fragment template file used by <a href="index.cgi"><code>index.cgi</code></a>
      to build the main server pages.
    </ul>
  </li>
  <br/>
  <li>
    <a href="ls.cgi"><code>ls.cgi</code></a>
    <ul>
      This CGI gets the XML formatted listing of a given path in the repository and lets the
      <a href="insurrection.xsl"><code>insurrection.xsl</code></a> XSLT transform it into HTML.&nbsp;
      Note that the XML output from this CGI matches that of the mod_dav_svn output for directories
      with the addition of latest revision details for each entry.&nbsp; The output XML uses the
      <a href="ls.dtd"><code>ls.dtd</code></a> DTD description and does not include the DTD in-line
      as the mod_dav_svn output does.&nbsp; This CGI is optional and can be turned off via simple
      change to the rewrite rule that handles it in the <a href=".htaccess"><code>.htaccess</code></a>
      file.
    </ul>
  </li>
  <br/>
  <li>
    <a href="log.cgi"><code>log.cgi</code></a>
    <ul>
      This CGI gets the XML formatted revision history from Subversion and returns it
      with the request to use the <a href="insurrection.xsl"><code>insurrection.xsl</code></a>
      presentation transform.&nbsp; The output XML uses the <a href="log.dtd"><code>log.dtd</code></a>
      DTD description.
    </ul>
  </li>
  <br/>
  <li>
    <a href="log.js"><code>log.js</code></a>
    <ul>
      The JavaScript that implements the dynamic elements of the revision history
      display from the <a href="insurrection.xsl"><code>insurrection.xsl</code></a>
      generated HTML.
    </ul>
  </li>
  <br/>
  <li>
    <a href="rss.cgi"><code>rss.cgi</code></a>
    <ul>
      This CGI produces an RSS 2.0 news feed about the specific repository &amp; path
      selected.&nbsp; The RSS feed contains the log entries of the changes to the repository.
    </ul>
  </li>
  <br/>
  <li>
    <a href="get.cgi"><code>get.cgi</code></a>
    <ul>
      This CGI provides for an HTTP GET method to retrieve any revision of a file.
    </ul>
  </li>
  <br/>
  <li>
    <a href="diff.cgi"><code>diff.cgi</code></a>
    <ul>
      This CGI provides for an HTTP GET method to display the differences between
      different revisions of a file or of a directory tree.
    </ul>
  </li>
  <br/>
  <li>
    <a href="broken_xslt.cgi"><code>broken_xslt.cgi</code></a>
    <ul>
      This CGI is used for the Subversion repository browsing when the user agent
      identifies the browser as a browser with non-working or broken XSLT support.
    </ul>
  </li>
  <br/>
  <li>
    <a href=".svn_index"><code>.svn_index</code></a>
    <ul>
      This is an example <a href=".svn_index"><code>.svn_index</code></a> file that
      the repository browsing feature supports.&nbsp; Any directory that contains a
      <a href=".svn_index"><code>.svn_index</code></a> file in the repository will
      have that file shown as a secondary banner in the web page, just like this
      file.&nbsp; The file should be a HTML fragment in order to correctly render.
    </ul>
  </li>
  <br/>
  <li>
    <a href="password.cgi"><code>password.cgi</code></a>
    <ul>
      A simple web-based password change feature for Subversion servers that use the
      <code>mod_authz_svn</code> plugin to Apache and Subversion.
    </ul>
  </li>
  <br/>
  <li>
    <a href="admin.cgi"><code>admin.cgi</code></a>
    <ul>
      A simple web-based user admin and repository access control manager for
      Subversion servers that use the <code>mod_authz_svn</code> plugin to Apache and
      Subversion.
    </ul>
  </li>
  <br/>
  <li>
    <a href="dump.cgi"><code>dump.cgi</code></a>
    <ul>
      A simple web-based repository dump download tool for administrators.
    </ul>
  </li>
  <br/>
  <li>
    <a href="bandwidth.cgi"><code>bandwidth.cgi</code></a>
    <ul>
      A simple web-based interface to some server generated usage reports such
      that repository administrators can monitor their repository's bandwidth
      usage.
    </ul>
  </li>
</ul>

