<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Audit Trail Design for Svn Obliterate</title>
</head>

<body>

<div class="h1">
<h1 style="text-align: center">Audit Trail Design for Svn Obliterate</h1>
</div>

<div class="h1">
<h2>Table of Contents</h2>
<ol id="toc">
  <li><a href="#obliteration-log">Obliteration Log</a>
  <!--
  <ol>
    <li><a href="#xxx.yyy">YYY</a>
    </li>
  </ol>
  -->
  </li>
</ol>
</div>

<!--
  ================================================================
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
  ====================================================================

  This software consists of voluntary contributions made by many
  individuals on behalf of CollabNet.
-->


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<div class="h2" id="obliteration-log" title="#obliteration-log">
  <h2>Obliteration Log</h2>

  <p>The details of each obliteration are logged in file. This
    logging is separate from and in addition to any logging of server
    actions that may be configured. The information logged is meta-data
    about the obliteration, and does not include the content of the
    files, so this log does not contain sufficient information to
    reconstruct the previous state of the repository.</p>

  <p>The obliteration log is human-readable and machine-readable. Its format
    is specified below.</p>

  <div class="h3" id="xxx.yyy" title="#xxx.yyy">
    <h3>Obliteration Log File Format</h3>


  </div>

</div>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

</body>
</html>
