viewvc-4intranet/viewvc.org/upgrading.html

1155 lines
34 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>ViewVC: Upgrading</title>
<link rel="stylesheet" type="text/css" href="./styles.css"/>
<style>
.varname { font-family: monospace; }
.unchanged { background: rgb(50%,75%,50%); }
.renamed { background: rgb(75%,100%,75%); }
.changed { background: rgb(100%,100%,25%); }
.replaced { background: rgb(100%,75%,0%); }
.removed { background: rgb(100%,25%,25%); }
</style>
</head>
<body>
<div id="title">
<a href="http://www.viewvc.org/"><img
src="./images/title.jpg" alt="ViewVC: Repository Browsing"/></a>
</div>
<div id="menu">
<p><a href="./index.html">Home</a> |
<a href="http://viewvc.tigris.org/">Project Page</a> |
<a href="./download.html">Download</a> |
<a href="./upgrading.html">Upgrading</a> |
<a href="./contributing.html">Contributing</a> |
<a href="./license-1.html">License</a> |
<a href="./contact.html">Contact</a> |
<a href="./who.html">About</a>
</p>
</div>
<table id="pagetable">
<tr>
<td id="pagecolumn1">
<h4>On this page:</h4>
<ul id="bookmarks">
<li><a href="#sec-upgrading">Upgrading Basics</a></li>
<li><a href="#sec-from-0-9">Upgrading from 0.9</a></li>
<li><a href="#sec-from-0-8">Upgrading from 0.8</a></li>
</ul>
<hr/>
<address><a href="mailto:&#117&#115&#101&#114&#115&#64&#118&#105&#101&#119&#118&#99&#46&#116&#105&#103&#114&#105&#115&#46&#111&#114&#103">ViewVC Users Group</a></address>
</td>
<td id="pagecolumn2">
<div class="section">
<h2 id="sec-upgrading">Upgrading Basics</h2>
<p>This document describes some of the things that you will need to
consider, change, or handle when upgrading an existing ViewVC
or ViewCVS installation to a newer version.</p>
<p>Upgrading from an ancient version to the latest version
isn't necessarily a multi step process. The instructions are only
organized that way. You can certainly upgrade in a single step.</p>
<p>It is always recommended to install the new version in a fresh
directory and to carefully compare the configuration files. A
possible approach is to name the directories
<code>/usr/local/viewvc-1.0</code>,
<code>/usr/local/viewcvs-1.1</code> and so on and than create a
symbolic link <code>viewvc</code> pointing to the production
version. This way you can easily test several versions and switch
back if your users start to complain.</p>
</div>
<div class="section">
<h2 id="sec-from-0-9">Upgrading From ViewCVS 0.9</h2>
<p>This section discusses how to upgrade ViewCVS 0.9 to ViewVC 1.0.</p>
<h3>CGI Stubs</h3>
<p>The CGI stub scripts haved been moved from
<code>&lt;VIEWVC_INSTALLATION_DIRECTORY&gt;/cgi/</code> to
<code>&lt;VIEWVC_INSTALLATION_DIRECTORY&gt;/bin/cgi/</code>, so
you will need update any ScriptAlias directives pointing to them in
your apache configuration. Also, the contents of these scripts have
changed, so you may need to replace copies of the old scripts you
put in other directories.</p>
<h3>Checkin Database</h3>
<p>ViewVC 1.0 reads and writes commit times in the MySQL database in
UTC time rather than local time. This can cause times displayed on
the query page to be a few hours off if an old database is being
used with a new version of ViewVC. The best way to fix this is to
rebuild the database with the new version of cvsdbadmin, but it
is also possible to enable a backwards compatibility mode by
setting <code>utc_time = 0</code> at the top of lib/dbi.py</p>
<h3>"checkout_magic" Option</h3>
<p>In ViewVC 1.0, the <code>checkout_magic</code> option has been
disabled by default to provide a simpler URL scheme that works
safely with URL authorization. Most users will not notice any
difference in behavior, but users who had been using ViewCVS to
browse the contents of static HTML pages stored in a repository
may notice that links and images in those pages targetted at other
files in the repository no longer display correctly. The new
<code>default_file_view</code> option can be used to solve this
problem and, if neccessary, <code>checkout_magic</code> can also
be re-enabled. The <code>viewcvs.conf</code> file describes these
options in detail.</p>
<h3>Configuration Options</h3>
<p>The following options have been added:</p>
<ul>
<li>general/svn_roots</li>
<li>general/root_parents</li>
<li>general/use_rcsparse</li>
<li>general/cvsnt_exe_path</li>
<li>options/template_dir</li>
<li>options/docroot</li>
<li>options/http_expiration_time</li>
<li>options/generate_etags</li>
<li>options/root_as_url_component</li>
<li>options/default_file_view</li>
<li>options/sort_group_dirs</li>
<li>options/use_pagesize</li>
<li>options/limit_changes</li>
<li>options/use_localtime</li>
<li>options/cross_copies</li>
<li>options/use_highlight</li>
<li>options/highlight_path</li>
<li>options/highlight_line_numbers</li>
<li>options/highlight_convert_tabs</li>
<li>options/use_php</li>
<li>options/php_path</li>
<li>options/svn_path</li>
<li>templates/error</li>
<li>templates/query_form</li>
<li>templates/query_results</li>
<li>cvsdb/port</li>
<li>cvsdb/rss_row_limit</li>
</ul>
<p>The following options have been removed:</p>
<ul>
<li>general/main_title</li>
<li>options/diff_font_face</li>
<li>options/diff_font_size</li>
<li>options/disable_enscript_lang</li>
<li>templates/footer</li>
</ul>
<h3>Templates</h3>
<p>The templates have changed drastically in this version of ViewVC.
If you are using customized templates from 0.9 or earlier, you will want
to port your old customizations to the new template files instead of
trying to get the old template files to work with the new ViewVC.</p>
<p>There is a new <a href="template-authoring-guide.html">Template
Authoring Guide</a> for ViewVC 1.0 templates that can help you
with your customizations. And the chart below lists all 0.9
template variables and shows what's become of them in 1.0.</p>
<table>
<thead>
<tr>
<th>Variable</th>
<th>Location</th>
<th>Changes</th>
</tr>
</thead>
<tbody>
<tr class="unchanged">
<td class="varname">ago</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">author</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="replaced">
<td class="varname">back_url</td>
<td>log.ezt, log_table.ezt</td>
<td>replaced by <code>up_href</code>, which doesn't include the current #file anchor</td>
</tr>
<tr class="replaced">
<td class="varname">branch</td>
<td>log.ezt, log_table.ezt</td>
<td>replaced by <code>default_branch</code>, which is a list instead of a string</td>
</tr>
<tr class="unchanged">
<td class="varname">branch</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">branch_names</td>
<td>log.ezt, log_table.ezt</td>
<td>renamed to <code>branch_tags</code></td>
</tr>
<tr class="unchanged">
<td class="varname">branch_points</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">branch_tags</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">branches</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">cfg.general.address</td>
<td>footer.ezt</td>
<td>unchanged</td>
</tr>
<tr class="removed">
<td class="varname">cfg.general.main_title</td>
<td>dir_alternate.ezt, directory.ezt, query.ezt</td>
<td>removed, used to be a string from the configuration file that was shown in the title of the root directory page.</td>
</tr>
<tr class="unchanged">
<td class="varname">cfg.options.use_cvsgraph</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">cfg.options.use_re_search</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">changed</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="changed">
<td class="varname">changes</td>
<td>diff.ezt</td>
<td>attributes changed, see below</td>
</tr>
<tr class="renamed">
<td class="varname">changes.extra</td>
<td>diff.ezt</td>
<td>renamed to <code>changes.line_info_extra</code></td>
</tr>
<tr class="unchanged">
<td class="varname">changes.have_left</td>
<td>diff.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">changes.have_right</td>
<td>diff.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">changes.left</td>
<td>diff.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">changes.line1</td>
<td>diff.ezt</td>
<td>renamed to <code>changes.line_info_left</code></td>
</tr>
<tr class="renamed">
<td class="varname">changes.line2</td>
<td>diff.ezt</td>
<td>renamed to <code>changes.line_info_right</code></td>
</tr>
<tr class="unchanged">
<td class="varname">changes.right</td>
<td>diff.ezt</td>
<td>unchanged</td>
</tr>
<tr class="changed">
<td class="varname">changes.type</td>
<td>diff.ezt</td>
<td>new values <code>binary_diff</code> and <code>error</code></td>
</tr>
<tr class="unchanged">
<td class="varname">commits</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.desc</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.files</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.files.author</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.files.branch</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.files.date</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.files.link</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.files.minus</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.files.plus</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">commits.files.rev</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">current_root</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>rootname</code></td>
</tr>
<tr class="unchanged">
<td class="varname">date</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">date1</td>
<td>diff.ezt</td>
<td>renamed to <code>date_left</code></td>
</tr>
<tr class="renamed">
<td class="varname">date2</td>
<td>diff.ezt</td>
<td>renamed to <code>date_right</code></td>
</tr>
<tr class="unchanged">
<td class="varname">diff_format</td>
<td>diff.ezt, log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">directory</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="changed">
<td class="varname">entries</td>
<td>log.ezt, log_table.ezt</td>
<td>attributes changed, see below</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.ago</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.author</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.branch_names</td>
<td>log.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.branch_point</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.branch_points</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.branch_points.href</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.branch_points.name</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.branches</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.branches.href</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.branches.name</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.changed</td>
<td>log.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">entries.href</td>
<td>log.ezt, log_table.ezt</td>
<td>renamed to <code>entries.download_href</code></td>
</tr>
<tr class="renamed">
<td class="varname">entries.html_log</td>
<td>log.ezt, log_table.ezt</td>
<td>renamed to <code>entries.log</code></td>
</tr>
<tr class="unchanged">
<td class="varname">entries.next_main</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.prev</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.rev</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.state</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.tag_names</td>
<td>log.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.tags</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.tags.href</td>
<td>log.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.tags.name</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">entries.text_href</td>
<td>log.ezt, log_table.ezt</td>
<td>renamed to <code>entries.download_text_href</code></td>
</tr>
<tr class="replaced">
<td class="varname">entries.to_selected</td>
<td>log.ezt, log_table.ezt</td>
<td>combined into <code>diff_to_sel_href</code> variable</td>
</tr>
<tr class="renamed">
<td class="varname">entries.utc_date</td>
<td>log.ezt, log_table.ezt</td>
<td>renamed to <code>entries.date</code></td>
</tr>
<tr class="unchanged">
<td class="varname">entries.vendor_branch</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">entries.view_href</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">file</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">file_url</td>
<td>header.ezt</td>
<td>renamed to <code>log_href</code></td>
</tr>
<tr class="removed">
<td class="varname">filename</td>
<td>header.ezt</td>
<td>removed, used to be set to the name of the file being shown</td>
</tr>
<tr class="unchanged">
<td class="varname">files_shown</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">graph_href</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="removed">
<td class="varname">has_tags</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>removed, used to be a boolean that was true when either tag information was available from the current directory or a tag was set. Determined whether or not to show a tag selector box on the bottom of the directory page.</td>
</tr>
<tr class="removed">
<td class="varname">have_logs</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>removed, used to be a boolean that was true whenever any logs were being shown in a directory listing. When it was false the template code would omit the log column from the directory table.</td>
</tr>
<tr class="renamed">
<td class="varname">head_abs_href</td>
<td>log.ezt, log_table.ezt</td>
<td>renamed to <code>download_href</code></td>
</tr>
<tr class="replaced">
<td class="varname">head_href</td>
<td>log.ezt, log_table.ezt</td>
<td>replaced by <code>view_href</code> and <code>download_href</code></td>
</tr>
<tr class="replaced">
<td class="varname">hidden_values</td>
<td>diff.ezt, log.ezt, log_table.ezt</td>
<td>combined into <code>*_hidden_values</code> variables</td>
</tr>
<tr class="unchanged">
<td class="varname">hide_attic_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">hours</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="replaced">
<td class="varname">href</td>
<td>log.ezt, log_table.ezt</td>
<td>combined into <code>*_href</code> variables</td>
</tr>
<tr class="renamed">
<td class="varname">href</td>
<td>markup.ezt</td>
<td>renamed to <code>download_href</code></td>
</tr>
<tr class="unchanged">
<td class="varname">human_readable</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">imagemap</td>
<td>graph.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">log</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">logsort</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">mime_type</td>
<td>log.ezt, log_table.ezt, markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="replaced">
<td class="varname">nav_file</td>
<td>markup.ezt</td>
<td>replaced with <code>nav_path</code></td>
</tr>
<tr class="changed">
<td class="varname">nav_path</td>
<td>dir_alternate.ezt, directory.ezt, header.ezt, log.ezt, log_table.ezt</td>
<td>changed from a block of HTML to a list of path components</td>
</tr>
<tr class="removed">
<td class="varname">no_match</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>removed, used to be a boolean that was true when a directory contained files, but none of them could be displayed due to regular expression or view tag filtering. Would trigger an error message.</td>
</tr>
<tr class="unchanged">
<td class="varname">num_commits</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="removed">
<td class="varname">num_files</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>removed, used to be a count of files in a directory, including dead and filtered files. This number was only shown in the <code>no_match</code> error message.</td>
</tr>
<tr class="replaced">
<td class="varname">params</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>replaced by <code>search_re_hidden_values</code></td>
</tr>
<tr class="removed">
<td class="varname">path</td>
<td>header.ezt</td>
<td>removed, used to be set to the directory path of the file being shown</td>
</tr>
<tr class="unchanged">
<td class="varname">plain_tags</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">prev</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="replaced">
<td class="varname">qquery</td>
<td>header.ezt</td>
<td>combined into <code>log_href</code> variable</td>
</tr>
<tr class="replaced">
<td class="varname">qquery</td>
<td>log.ezt, log_table.ezt</td>
<td>replaced by <code>diff_select_hidden_values</code></td>
</tr>
<tr class="replaced">
<td class="varname">query</td>
<td>log.ezt, log_table.ezt</td>
<td>combined into <code>*_href</code> variables</td>
</tr>
<tr class="unchanged">
<td class="varname">query</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">repository</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="replaced">
<td class="varname">request.amp_query</td>
<td>graph.ezt</td>
<td>combined into <code>imagesrc</code> variable</td>
</tr>
<tr class="replaced">
<td class="varname">request.script_name</td>
<td>dir_alternate.ezt, directory.ezt, log.ezt, log_table.ezt</td>
<td>combined into <code>*_href</code> variables</td>
</tr>
<tr class="replaced">
<td class="varname">request.url</td>
<td>diff.ezt</td>
<td>combined into <code>diff_format_action</code> variable</td>
</tr>
<tr class="replaced">
<td class="varname">request.url</td>
<td>graph.ezt</td>
<td>combined into <code>imagesrc</code> variable</td>
</tr>
<tr class="renamed">
<td class="varname">request.where</td>
<td>graph.ezt</td>
<td>renamed to just <code>where</code></td>
</tr>
<tr class="removed">
<td class="varname">rev</td>
<td>graph.ezt</td>
<td>removed, used to be set to the value of the "graph" parameter in CvsGraph page urls. The value was passed on through the <code>rev</code> parameter to CvsGraph image URLs, where, oddly enough, it was ignored. It'd be set to a file revision number in directory page graph links, and just "1" in log page graph links.</td>
</tr>
<tr class="unchanged">
<td class="varname">rev</td>
<td>graph.ezt, header.ezt, markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">rev1</td>
<td>diff.ezt</td>
<td>renamed to <code>rev_left</code></td>
</tr>
<tr class="renamed">
<td class="varname">rev2</td>
<td>diff.ezt</td>
<td>renamed to <code>rev_right</code></td>
</tr>
<tr class="unchanged">
<td class="varname">rev_selected</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="changed">
<td class="varname">roots</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>changed to a list of objects instead of a list of strings</td>
</tr>
<tr class="replaced">
<td class="varname">rows</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>replaced by <code>entries</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.anchor</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.anchor</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.author</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.author</code></td>
</tr>
<tr class="replaced">
<td class="varname">rows.cvs</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>replaced by <code>entries.errors</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.graph_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.graph_href</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.log_href</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.log</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.short_log</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.log_file</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.log_file</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.log_rev</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.log_rev</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.name</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.name</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.rev</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.rev</code></td>
</tr>
<tr class="replaced">
<td class="varname">rows.rev_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>replaced by <code>entries.view_href</code> and <code>entries.download_href</code></td>
</tr>
<tr class="removed">
<td class="varname">rows.show_log</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>removed, used to be a boolean that was true whenever a log message was present for the directory entry.</td>
</tr>
<tr class="renamed">
<td class="varname">rows.state</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.state</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.time</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.ago</code></td>
</tr>
<tr class="renamed">
<td class="varname">rows.type</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>entries.pathtype</code></td>
</tr>
<tr class="unchanged">
<td class="varname">search_re</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">selection_form</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>renamed to <code>search_re_form</code></td>
</tr>
<tr class="unchanged">
<td class="varname">show_attic_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">sortby</td>
<td>dir_alternate.ezt, directory.ezt, query.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">sortby_author_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">sortby_date_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">sortby_file_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">sortby_log_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">sortby_rev_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">state</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">tag</td>
<td>markup.ezt</td>
<td>renamed to <code>pathrev</code></td>
</tr>
<tr class="renamed">
<td class="varname">tag1</td>
<td>diff.ezt</td>
<td>renamed to <code>tag_left</code></td>
</tr>
<tr class="renamed">
<td class="varname">tag2</td>
<td>diff.ezt</td>
<td>renamed to <code>tag_right</code></td>
</tr>
<tr class="unchanged">
<td class="varname">tags</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">tags</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">tags.name</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">tags.rev</td>
<td>log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">tags</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">tarball_href</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">text_href</td>
<td>markup.ezt</td>
<td>renamed to <code>download_text_href</code></td>
</tr>
<tr class="removed">
<td class="varname">tr1</td>
<td>log.ezt, log_table.ezt</td>
<td>removed, used to be a default value for the first text field in the diff selector form. In 1.0, the default value is computed in the templates.</td>
</tr>
<tr class="removed">
<td class="varname">tr2</td>
<td>log.ezt, log_table.ezt</td>
<td>removed, used to be a default value for the second text field in the diff selector form. In 1.0, the default value is computed in the templates.</td>
</tr>
<tr class="removed">
<td class="varname">unreadable</td>
<td>dir_alternate.ezt, directory.ezt</td>
<td>removed, used to be a boolean that was true whenever any of the files in the directory listing were 'unreadable.' It would trigger a generic error message at the bottom of the page.</td>
</tr>
<tr class="renamed">
<td class="varname">utc_date</td>
<td>markup.ezt</td>
<td>renamed to <code>date</code></td>
</tr>
<tr class="unchanged">
<td class="varname">vendor_branch</td>
<td>markup.ezt</td>
<td>unchanged</td>
</tr>
<tr class="renamed">
<td class="varname">view_tag</td>
<td>dir_alternate.ezt, directory.ezt, log.ezt, log_table.ezt</td>
<td>renamed to <code>pathrev</code></td>
</tr>
<tr class="renamed">
<td class="varname">viewable</td>
<td>log.ezt, log_table.ezt</td>
<td>renamed to <code>prefer_markup</code></td>
</tr>
<tr class="unchanged">
<td class="varname">vsn</td>
<td>footer.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">where</td>
<td>diff.ezt, dir_alternate.ezt, directory.ezt, log.ezt, log_table.ezt</td>
<td>unchanged</td>
</tr>
<tr class="unchanged">
<td class="varname">who</td>
<td>query.ezt</td>
<td>unchanged</td>
</tr>
</tbody>
</table>
<h4>Template Arrangement</h4>
<p>The default templates have been rearranged a bit in ViewVC 1.0.
Specifically, "header.ezt" and "footer.ezt" have moved into the
"templates/include/" subdirectory. Also, "directory.ezt" and
"dir_alternate.ezt" now reference new template files
"dir_header.ezt" and "dir_footer.ezt", also found in the
"templates/include/" subdirectory.</p>
<p>Notably, the "markup.ezt" and "annotate.ezt" templates are now
fully self-contained. That is, the markup and annotation data
generated by ViewVC is now accessible in those templates just like
other template variables. As a result, ViewVC now has no more
internal need for the <var>templates.footer</var> configuration
variable, so that variable has been removed from the default
configuration file.</p>
</div>
<div class="section">
<h2 id="sec-from-0-8">Upgrading From ViewCVS 0.8</h2>
<p>
This section discusses how to upgrade ViewCVS 0.8 to version
0.9 or a later version of the software.
</p>
<p>
<strong>NOTE:</strong> these changes will bring you up to the
requirements of version 0.9. You must also follow the directions
for <a href="#from9">upgrading from 0.9</a>.
</p>
<h3>Configuration Options</h3>
<p>
More templates were introduced in version 0.8 of the software,
which made many of the configuration options obsolete. This
section covers which options were removed. If you made any
changes to these options, then you will need to make
corresponding changes in the templates.
</p>
<dl>
<dt>
Colors:
<strong>diff_heading</strong>,
<strong>diff_empty</strong>,
<strong>diff_remove</strong>,
<strong>diff_change</strong>,
<strong>diff_add</strong>,
and <strong>diff_dark_change</strong>
</dt>
<dd>
These options have been incorporated into the
<code>diff.ezt</code> template.
<p></p>
</dd>
<dt><strong>markup_log</strong></dt>
<dd>
This option has been incorporated into the
<code>markup.ezt</code> template.
<p></p>
</dd>
<dt>Colors: <strong>nav_header</strong>
and <strong>alt_background</strong></dt>
<dd>
These options have been incorporated into the
<code>header.ezt</code> template.
<p></p>
</dd>
<dt>
Images:
<strong>back_icon</strong>,
<strong>dir_icon</strong>,
and <strong>file_icon</strong>
</dt>
<dd>
These options have been incorporated into the
<code>directory.ezt</code>, <code>header.ezt</code>,
<code>log.ezt</code>, <code>log_table.ezt</code>, and
<code>query.ezt</code> templates.
<p></p>
</dd>
<dt><strong>use_java_script</strong>
and <strong>open_extern_window</strong></dt>
<dd>
The templates now use JavaScript in all applicable places,
and open external windows for most downloading and viewing
of files. If you wish to not use JavaScript and/or external
windows, then remove the feature(s) from the templates.
<p></p>
</dd>
<dt><strong>show_author</strong></dt>
<dd>
Changing this option would be quite strange and rare. If you
do not want to show the author for the revisions, then you
should remove it from the various templates.
<p></p>
</dd>
<dt><strong>hide_non_readable</strong></dt>
<dd>
This option was never used, so it has been removed.
<p></p>
</dd>
<dt><strong>flip_links_in_dirview</strong></dt>
<dd>
This option is no longer available. If you want the links in
your directory view flipped, then you may use the
<code>dir_alternate.ezt</code> template.
<p></p>
</dd>
</dl>
<h3>Template Variables</h3>
<p>
Some template variables that were available in 0.8 have been
removed in 0.9. If you have custom templates that refer to these
variables, then you will need to modify your templates.
</p>
<dl>
<dt><code>directory.ezt</code>: <var>headers</var></dt>
<dd>
The headers are now listed explicitly in the template,
rather than made available through a list.
<p></p>
</dd>
<dt>
<code>directory.ezt</code>:
<var>rows.cols</var>,
and <var>rows.span</var>
</dt>
<dd>
These variables were used in conjunction with the
<var>headers</var> variable to control the column
displays. This is now controlled explicitly within the
templates.
<p></p>
</dd>
<dt><code>directory.ezt</code>:
<var>rev_in_front</var></dt>
<dd>
This was used to indicate that revision links should
be used in the first column, rather than in their
standard place in the second column. Changing the
links should now be done in the template, rather than
according to this variable. You may want to look at
the <code>dir_alternate.ezt</code> template, which has
the revision in front.
<p></p>
</dd>
<dt><code>directory.ezt</code>:
<var>rows.attic</var>
and <var>rows.hide_attic_href</var></dt>
<dd>
These variable were used to manage the hide and
showing of the contents of the <code>Attic/</code>
subdirectory. Several new variables were introduced
which can be used to replace this functionality:
<var>show_attic_href</var>,
<var>hide_attic_href</var>, and <var>rows.state</var>.
<p></p>
</dd>
</dl>
</div>
</td>
</tr>
</table>
</body>
</html>