  
<h1 align="center">Catmv</h1>
<ul class="toc">
  <li><a href="#whatis">Qu'est-ce qu'un "catmv" ?</a></li>
  <li><a href="#howmoved">Comment dplace-t-on une catgorie ?</a></li>
  <li><a href="#howqueue">Comment la queue des catmv fonctionne-t-elle ?</a> </li>
  <li><a href="#wheneffect">Un catmv prend-il effet immdiatement ?</a></li>
  <li><a href="#restrict">Y a-t-il des restrictions sur les catgories qui peuvent faire l'objet d'un catmv ?</a></li>
  <li><a href="#diff">Y a-t-il une diffrence entre "renommer" et "dplacer" une catgorie ?</a></li>
  </ul>
  <p>This document describes the <i>process</i> of moving a category; not the 
    <a href="/ddp/03009/">permission level that facilitates 
    the process</a>. </p>
  <p><b><a name="whatis"></a>What is 'catmv'?</b></p>
  <p> 'Catmv' is an acronym of "category move". It is a process that allows editors 
    with the appropriate permissions to change the location of a directory category. 
  </p>
  <p><b><a name="howmoved"></a>How is a category moved?</b></p>
  <p> A move consists of multiple parts. The following all occur, although not 
    necessarily in this exact order. </p>
<ul>
  <li> An editor with catmv permissions loads the edit page of the category they 
    wish to move. </li>
  <li> This editor enters the new name that the category should be renamed to. 
  </li>
  <li> The category is physically moved to the new location. </li>
  <li> Internal links (@links, relcats, and altlangs) pointing to the moved category 
    are updated so that they point to the new location. </li>
  <li> A HTTP 302 redirect is set up, pointing from the old location to the new. 
  </li>
  <li> All affected public pages are regenerated. <br>
    The public pages are static HTML. They each have a different path bar (e.g. 
    Arts : Music :...), and this needs to be modified to reflect the category's 
    new location.<br>
    In addition, every public page contains site counts, indicating both the amount 
    of sites in the current category, and the amount of sites in each sub-category. 
    When a category is moved, the amount of sites in all categories above it in 
    the hierarchy will increase. Thus, all affected categories require their site 
    counts adjusting. </li>
  <li> All affected category description pages are regenerated. <br>
    Category description pages are also static HTML. Each one contains a path 
    bar., thus these need to be regenerated too. </li>
  <li> The back-end DB is also updated to reflect the new location of the URLs 
    contained in the moved categories. This happens so that when a URL is added, 
    the list of categories in which it already appears is correct. </li>
</ul>

  <p><b><a name="howqueue"></a>How does the catmv queue work?</b> </p>
  <p>All catmv requests are sent to the catmv queue. The catmv queue shows requests 
    in the order they entered the queue, but processes them in alphabetical order. 
    The time that a request entered the queue is immaterial; even if a request 
    has been pending for a week, a new request with greater alphabetic significance 
    (category names starting with 'A' have the highest significance) would be 
    given higher priority. The top entry in the queue is always labelled as moving. 
  </p>
  <p><b><a name="wheneffect"></a>Does a catmv take effect immediately?</b> </p>
  <p>No. Due to the time taken for all the necessary HTML pages to be re-generated 
    even catmvs of leaf categories incur some delay. In fact, the delay when moving 
    a category is proportional to the size of the category being moved. </p>
  <p>The delay is noticeably increased if catmv requests are issued when the RDF 
    dump is occurring. Running catmvs during a RDF dump causes inconsistencies 
    in the RDF files. To avoid this, the catmv daemon (catmvd) is temporarily 
    halted. </p>
  <p>If a catmv is requested while the dump is occurring, it is placed in the 
    catmv queue as normal, but only processed once the dump has completed.</p>
  <p><b><a name="restrict"></a>Are there any restrictions on what categories can 
    be catmv'd?</b> </p>
  <p>The editor issuing the move request must have catmv permissions in both the 
    source and target category. </p>
  <p>In addition, the system doesn't allow non-root editors to move anything with 
    more than 10,000 sites in. </p>
  <p><b><a name="diff"></a>Is there a difference between 'renaming' and 'moving' 
    a category?</b> </p>
  <p>No. The same method is used, and results obtained, whether <var>Foo/Bar</var> 
    is catmv'd to <var>Foo/Ba</var> or <var>Foo/Fubar/Bar</var>. </p>