<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Check Notes — Bazaar 2.7.0 documentation</title> <link rel="stylesheet" href="_static/classic.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <script type="text/javascript" src="_static/language_data.js"></script> <link rel="shortcut icon" href="_static/bzr.ico"/> <link rel="search" title="Search" href="search.html" /> <link rel="stylesheet" href="_static/bzr-doc.css" type="text/css" /> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li><a href="http://bazaar.canonical.com/"> <img src="_static/bzr icon 16.png" /> Home</a> | </li> <a href="http://doc.bazaar.canonical.com/en/">Documentation</a> | </li> <li class="nav-item nav-item-0"><a href="index.html">Developer Document Catalog (2.7.0)</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="check-notes"> <h1>Check Notes<a class="headerlink" href="#check-notes" title="Permalink to this headline">¶</a></h1> <div class="contents local topic" id="contents"> <ul class="simple"> <li><a class="reference internal" href="#overview" id="id1">Overview</a></li> <li><a class="reference internal" href="#repository" id="id2">Repository</a></li> <li><a class="reference internal" href="#branch" id="id3">Branch</a></li> <li><a class="reference internal" href="#tree" id="id4">Tree</a></li> <li><a class="reference internal" href="#duplicate-work" id="id5">Duplicate work</a></li> <li><a class="reference internal" href="#outline-of-approach" id="id6">Outline of approach</a></li> </ul> </div> <div class="section" id="overview"> <h2><a class="toc-backref" href="#id1">Overview</a><a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2> <p>Check has multiple responsibilities:</p> <ul class="simple"> <li>Ensure that the data as recorded on disk is accessible intact and unaltered.</li> <li>Ensure that a branch/repository/tree/whatever is ready for upgrade.</li> <li>Look for and report on recorded-data issues where previous bzr’s, or changing situations have lead so some form of inconsistency.</li> <li>Report sufficient information for a user to either fix the issue themselves or report a bug that will hopefully be sufficiently detailed we can fix based on the initial report.</li> <li>Not scare users when run if everything is okey-dokey.</li> </ul> <p>Ideally one check invocation can do all these things.</p> </div> <div class="section" id="repository"> <h2><a class="toc-backref" href="#id2">Repository</a><a class="headerlink" href="#repository" title="Permalink to this headline">¶</a></h2> <p>Things that can go wrong: * Bit errors or alterations may occur in raw data. * Data that is referenced may be missing * There could be a lot of garbage in upload etc. * File graphs may be inconsistent with inventories and parents. * The revision graph cache can be inconsistent with the revision data.</p> </div> <div class="section" id="branch"> <h2><a class="toc-backref" href="#id3">Branch</a><a class="headerlink" href="#branch" title="Permalink to this headline">¶</a></h2> <p>Things that can go wrong: * Tag or tip revision ids may be missing from the repo. * The revno tip cache may be wrong. * Various URLS could be problematic (not inaccessible, just invalid) * Stacked-on branch could be inaccessible.</p> </div> <div class="section" id="tree"> <h2><a class="toc-backref" href="#id4">Tree</a><a class="headerlink" href="#tree" title="Permalink to this headline">¶</a></h2> <p>Things that can go wrong: * Bit errors in dirstate. * Corrupt or invalid shelves. * Corrupt dirstates written to disk. * Cached inventories might not match repository.</p> </div> <div class="section" id="duplicate-work"> <h2><a class="toc-backref" href="#id5">Duplicate work</a><a class="headerlink" href="#duplicate-work" title="Permalink to this headline">¶</a></h2> <p>If we check every branch in a repo separately we will encounter duplicate effort in assessing things like missing tags/tips, revno cache etc.</p> </div> <div class="section" id="outline-of-approach"> <h2><a class="toc-backref" href="#id6">Outline of approach</a><a class="headerlink" href="#outline-of-approach" title="Permalink to this headline">¶</a></h2> <p>To check a repository, we scan for branches, open their trees and generate summary data. We then collect all the summary data in as compact a form as possible and do a detailed check on the repository, calling back out to branch and trees as we encounter the actual data that that tree/branch requires to perform its check.</p> </div> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h3><a href="index.html">Table of Contents</a></h3> <ul> <li><a class="reference internal" href="#">Check Notes</a><ul> <li><a class="reference internal" href="#overview">Overview</a></li> <li><a class="reference internal" href="#repository">Repository</a></li> <li><a class="reference internal" href="#branch">Branch</a></li> <li><a class="reference internal" href="#tree">Tree</a></li> <li><a class="reference internal" href="#duplicate-work">Duplicate work</a></li> <li><a class="reference internal" href="#outline-of-approach">Outline of approach</a></li> </ul> </li> </ul> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="_sources/check.txt" rel="nofollow">Show Source</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li><a href="http://bazaar.canonical.com/"> <img src="_static/bzr icon 16.png" /> Home</a> | </li> <a href="http://doc.bazaar.canonical.com/en/">Documentation</a> | </li> <li class="nav-item nav-item-0"><a href="index.html">Developer Document Catalog (2.7.0)</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright 2009-2011 Canonical Ltd. Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.8.4. </div> </body> </html>