Begin the work of making the 'newvc' contributed template set into the

new default for ViewVC 1.2.  We'll keep the old templates around as a
"classic" option.

* lib/config.py,
* conf/viewvc.conf.dist
  (Config.set_defaults): Set cfg.options.template_dir to
    "templates/default", and make the matching edit in the pristine
    configuration file.

* templates/:
  Now just a container for...

* templates/classic/,
* templates/classic/*:
  ...the old default templates (which were 'templates' and 'templates/*'.

* templates/default/,
  templates/default/*:
  ...and the new default, copied from the 'templates-contrib/1.1' area.




git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@2647 8cb11bc2-c004-0410-86c3-e597b4017df7
remotes/issue-495-dev
cmpilato 2011-10-27 18:05:14 +00:00
parent 00d96de446
commit 65137920a8
94 changed files with 2415 additions and 2 deletions

View File

@ -568,7 +568,12 @@
## SEE ALSO: the [templates] configuration section, where you can
## override templates on a per-view basis.
##
#template_dir = templates
## Example:
## template_dir = templates/classic
## template_dir = templates/default
## template_dir = templates-contrib/custom/templates
#
#template_dir = templates/default
## docroot: Web path to a directory that contains ViewVC static files
## (stylesheets, images, etc.) If set, static files will get

View File

@ -415,7 +415,7 @@ class Config:
self.options.hr_ignore_keyword_subst = 1
self.options.hr_intraline = 0
self.options.allow_compress = 0
self.options.template_dir = "templates"
self.options.template_dir = "templates/default"
self.options.docroot = None
self.options.show_subdir_lastmod = 0
self.options.show_roots_lastmod = 0

View File

Before

Width:  |  Height:  |  Size: 764 B

After

Width:  |  Height:  |  Size: 764 B

View File

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 337 B

View File

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 205 B

View File

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 247 B

View File

Before

Width:  |  Height:  |  Size: 755 B

After

Width:  |  Height:  |  Size: 755 B

View File

Before

Width:  |  Height:  |  Size: 162 B

After

Width:  |  Height:  |  Size: 162 B

View File

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 219 B

View File

Before

Width:  |  Height:  |  Size: 240 B

After

Width:  |  Height:  |  Size: 240 B

View File

Before

Width:  |  Height:  |  Size: 228 B

After

Width:  |  Height:  |  Size: 228 B

View File

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 167 B

View File

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 295 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1004 B

After

Width:  |  Height:  |  Size: 1004 B

View File

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 338 B

View File

Before

Width:  |  Height:  |  Size: 467 B

After

Width:  |  Height:  |  Size: 467 B

View File

Before

Width:  |  Height:  |  Size: 303 B

After

Width:  |  Height:  |  Size: 303 B

View File

Before

Width:  |  Height:  |  Size: 428 B

After

Width:  |  Height:  |  Size: 428 B

View File

Before

Width:  |  Height:  |  Size: 226 B

After

Width:  |  Height:  |  Size: 226 B

View File

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 168 B

View File

Before

Width:  |  Height:  |  Size: 186 B

After

Width:  |  Height:  |  Size: 186 B

View File

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

128
templates/default/diff.ezt Normal file
View File

@ -0,0 +1,128 @@
[# Setup page definitions]
[define page_title]Diff of:[end]
[define help_href][docroot]/help_rootview.html[end]
[# end]
[include "include/header.ezt" "diff"]
<form method="get" action="[diff_format_action]" style="display: inline;">
<div>
[for diff_format_hidden_values]<input type="hidden" name="[diff_format_hidden_values.name]" value="[diff_format_hidden_values.value]"/>[end]
<select name="diff_format" onchange="submit()">
<option value="h" [is diff_format "h"]selected="selected"[end]>Colored Diff</option>
<option value="l" [is diff_format "l"]selected="selected"[end]>Long Colored Diff</option>
<option value="f" [is diff_format "f"]selected="selected"[end]>Full Colored Diff</option>
<option value="u" [is diff_format "u"]selected="selected"[end]>Unidiff</option>
<option value="c" [is diff_format "c"]selected="selected"[end]>Context Diff</option>
<option value="s" [is diff_format "s"]selected="selected"[end]>Side by Side</option>
</select>
<input type="submit" value="Show" />
(<a href="[patch_href]">Generate patch</a>)
</div>
</form>
<div id="vc_main_body">
<!-- ************************************************************** -->
[if-any raw_diff]
<pre>[raw_diff]</pre>
[else]
[define change_right][end]
[define last_change_type][end]
[# these should live in stylesheets]
<table cellpadding="0" cellspacing="0" style="width: 100%;">
[for changes]
[is changes.type "change"][else]
[if-any change_right][change_right][define change_right][end][end]
[end]
[is changes.type "header"]
<tr>
<th class="vc_header" style="width:6%;"><strong>#</strong></th>
<th colspan="2" class="vc_header">
<strong>Line [changes.line_info_left]</strong> |
<strong>Line [changes.line_info_right]</strong>
</th>
</tr>
[else]
[is changes.type "add"]
<tr>
<td id="l[changes.line_number]">[if-any right.annotate_href]<a href="[right.annotate_href]#l[changes.line_number]">[changes.line_number]</a>[else][changes.line_number][end]</td>
<td class="vc_diff_plusminus"><strong style="color: green;">+</strong></td>
<td class="vc_diff_add">[changes.right]</td>
</tr>
[else]
[is changes.type "remove"]
<tr>
<td style="text-decoration: line-through">[changes.line_number]</td>
<td class="vc_diff_plusminus"><strong style="color: red;">&ndash;</strong></td>
<td class="vc_diff_remove">[changes.left]</td>
</tr>
[else]
[is changes.type "change"]
[if-any changes.have_left]
<tr>
<td style="text-decoration: line-through">[changes.line_number]</td>
<td class="vc_diff_plusminus"><strong style="color: yellow;">&lt;</strong></td>
<td class="vc_diff_changes1">[changes.left]</td>
</tr>
[end]
[define change_right][change_right]
[if-any changes.have_right]
<tr>
<td id="l[changes.line_number]">[if-any right.annotate_href]<a href="[right.annotate_href]#l[changes.line_number]">[changes.line_number]</a>[else][changes.line_number][end]</td>
<td class="vc_diff_plusminus"><strong style="color: yellow;">&gt;</strong></td>
<td class="vc_diff_changes2">[changes.right]</td>
</tr>[end]
[end]
[else]
[is changes.type "no-changes"]
<tr><td colspan="3" style="vc_diff_nochange"><strong>- No changes -</strong></td></tr>
[else]
[is changes.type "binary-diff"]
<tr><td colspan="3" class="vc_diff_binary"><strong>- Binary file revisions differ -</strong></td></tr>
[else]
[is changes.type "error"]
<tr><td colspan="3" class="vc_diff_error"><strong>- ViewVC depends on rcsdiff and GNU diff
to create this page. ViewVC cannot find GNU diff. Even if you
have GNU diff installed, the rcsdiff program must be configured
and compiled with the GNU diff location. -</strong></td></tr>
[else][# a line of context]
<tr>
<td id="l[changes.line_number]">[if-any right.annotate_href]<a href="[right.annotate_href]#l[changes.line_number]">[changes.line_number]</a>[else][changes.line_number][end]</td>
<td class="vc_diff_plusminus">&nbsp;</td>
<td style="font-family: monospace; white-space: pre;">[changes.right]</td>
</tr>
[end][end][end][end][end][end][end]
[define last_change_type][changes.type][end]
[end]
[if-any change_right][change_right][end]
</table>
<h3>Diff Legend</h3>
<table class="auto" cellspacing="0">
<tr>
<td class="vc_diff_plusminus"><strong style="color: red;">&ndash;</strong></td>
<td class="vc_diff_remove">Removed lines</td>
</tr>
<tr>
<td class="vc_diff_plusminus"><strong style="color: green;">+</strong></td>
<td class="vc_diff_add">Added lines</td>
</tr>
<tr>
<td class="vc_diff_plusminus"><strong style="color: yellow;">&lt;</strong></td>
<td class="vc_diff_changes1">Changed lines</td>
</tr>
<tr>
<td class="vc_diff_plusminus"><strong style="color: yellow;">&gt;</strong></td>
<td class="vc_diff_changes2">Changed lines</td>
</tr>
</table>
[end]
<!-- ************************************************************** -->
</div>
[include "include/footer.ezt"]

View File

@ -0,0 +1,139 @@
[# setup page definitions]
[define page_title]Index of:[end]
[define help_href][docroot]/help_[if-any where]dir[else]root[end]view.html[end]
[# end]
[include "include/header.ezt" "directory"]
[if-any where][else]
<!-- you may insert repository access instructions here -->
[end]
<table class="auto">
[is picklist_len "0"][else][is picklist_len "1"][else]
<tr>
<td>Jump to page:</td>
<td><form method="get" action="[dir_paging_action]">
[for dir_paging_hidden_values]<input type="hidden" name="[dir_paging_hidden_values.name]" value="[dir_paging_hidden_values.value]"/>[end]
<select name="dir_pagestart" onchange="submit()">
[for picklist]
<option [is picklist.count dir_pagestart]selected[end] value="[picklist.count]">Page [picklist.page]: [picklist.start] to [picklist.end]</option>
[end]
</select>
<input type="submit" value="Go" />
</form>
</td>
</tr>
[end][end]
</table>
<div id="vc_main_body">
<!-- ************************************************************** -->
<div id="vc_togglables">
[is roottype "svn"]
[if-any rev]r<a href="[revision_href]">[rev]</a>[end]
[else]
[is num_dead "0"]
[else]
[if-any attic_showing]
<a href="[hide_attic_href]">Hide
[else]
<a href="[show_attic_href]">Show
[end]
dead files</a>
[end]
[end]
</div>
<table cellspacing="2" class="fixed" id="dirlist">
<thead>
<tr>
<th style="width: 200px" class="vc_header[is sortby "file"]_sort[end]">
<a href="[sortby_file_href]#dirlist">File
[is sortby "file"]
<img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
width="13" height="13"
src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
[end]
</a>
</th>
<th class="vc_header[is sortby "rev"]_sort[end]">
<a href="[sortby_rev_href]#dirlist">Last Change
[is sortby "rev"]
<img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
width="13" height="13"
src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
[end]
</a>
</th>
</tr>
</thead>
<tbody>
[if-any up_href]
<tr class="vc_row_odd">
<td colspan="2">
<a href="[up_href]">
<img src="[docroot]/images/back_small.png" alt="" class="vc_icon"
/>&nbsp;../</a>
</td>
</tr>
[end]
[for entries]
[define click_href][is entries.pathtype "dir"][entries.view_href][else][if-any entries.prefer_markup][entries.view_href][else][entries.download_href][end][end][end]
<tr class="vc_row_[if-index entries even]even[else]odd[end]">
<td style="width: 200px" [if-any click_href]onclick="jumpTo('[click_href]')"[end]>
[if-any click_href]<a name="[entries.anchor]" href="[click_href]" title="[is entries.pathtype "dir"]View Directory Contents[else][if-any entries.prefer_markup]View[else]Download[end] File Contents[end]">[end]
<img src="[docroot]/images/[is entries.pathtype "dir"]dir[else][is entries.state "dead"]broken[else]text[end][end].png" alt="" class="vc_icon" />
[entries.name][is entries.pathtype "dir"]/[end][if-any click_href]</a>[end]
[is entries.state "dead"](dead)[end]
</td>
<td [if-any entries.log_href]onclick="jumpTo('[entries.log_href]')"[end]>
[if-any entries.rev]
<strong>[if-any entries.log_href]<a href="[entries.log_href]" title="Revision [entries.rev]">[entries.rev]</a>[else][entries.rev][end]</strong>
([entries.ago] ago)
by <em>[entries.author]</em>:
[entries.log]
[is entries.pathtype "dir"][is roottype "cvs"]
<em>(from [entries.log_file]/[entries.log_rev])</em>
[end][end]
[end]
</td>
</tr>
[end]
</tbody>
</table>
<div id="vc_view_summary">
[if-any search_re_action]
<form class="inline" method="get" action="[search_re_action]">
<div class="inline">
[for search_re_hidden_values]<input type="hidden" name="[search_re_hidden_values.name]" value="[search_re_hidden_values.value]"/>[end]
<input type="text" name="search" value="[search_re]" />
<input type="submit" value="Search Files" />
</div>
</form>
[if-any search_re]
<form class="inline" method="get" action="[search_re_action]">
<div class="inline">
[for search_re_hidden_values]<input type="hidden" name="[search_re_hidden_values.name]" value="[search_re_hidden_values.value]"/>[end]
<input type="submit" value="Show all files" />
</div>
</form>
[end]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[end]
[include "include/pathrev_form.ezt"]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[files_shown] file[is files_shown "1"][else]s[end] shown
</div>
[include "include/props.ezt"]
<!-- ************************************************************** -->
</div>
[include "include/footer.ezt"]

View File

@ -0,0 +1,8 @@
/************************************/
/*** ViewVC Help CSS Stylesheet ***/
/************************************/
body { margin: 0.5em; }
img { border: none; }
table { width: 100%; }
td { vertical-align: top; }
col.menu { width:12em; }

View File

@ -0,0 +1,126 @@
<!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" xml:lang="en" lang="en">
<head>
<title>ViewVC Help: Directory View</title>
<link rel="stylesheet" href="help.css" type="text/css" />
</head>
<body>
<table>
<col class="menu" />
<col />
<tr>
<td colspan="2">
<h1>ViewVC Help: Directory View</h1>
</td>
</tr>
<tr><td>
<h3>Help</h3>
<a href="help_rootview.html">General</a><br />
<strong>Directory&nbsp;View</strong><br />
<a href="help_log.html">Log&nbsp;View</a><br />
<h3>Internet</h3>
<a href="http://viewvc.org/index.html">Home</a><br />
<a href="http://viewvc.org/upgrading.html">Upgrading</a><br />
<a href="http://viewvc.org/contributing.html">Contributing</a><br />
<a href="http://viewvc.org/license-1.html">License</a><br />
</td><td colspan="2">
<p>The directory listing view should be a familiar sight to any
computer user. It shows the path of the current directory being viewed
at the top of the page. Below that is a table summarizing the
directory contents, and then comes actual contents, a sortable list of
all files and subdirectories inside the current directory.</p>
<p><a name="summary"></a>The summary table is made up of some or all
of the following rows:</p>
<ul>
<li><a name="summary-files-shown"><strong>Files Shown</strong></a>
- Number of files shown in the directory listing. This might be less
than the actual number of files in the directory if a
<a href="#option-search">regular expression search</a> is in place,
hiding files which don't meet the search criteria. In CVS directory
listings, this row will also have a link to toggle display of
<a href="help_rootview.html#dead-files">dead files</a>, if any are
present.</li>
<li><a name="summary-revision"><strong>Directory
Revision</strong></a> - For Subversion directories only.
Shown as "# of #" where the first number is the most recent
repository revision where the directory (or a path underneath it)
was modified. The second number is just the latest repository
revision. Both numbers are links to
<a href="help_rootview.html#view-rev">revision views</a></li>
<li><a name="summary-sticky-revision-tag"><strong>Sticky
Revision/Tag</strong></a> - shows the current
<a href="help_rootview.html#sticky-revision-tag">sticky revision or
tag</a> and contains form fields to set or clear it.</li>
<li><a name="summary-search"><strong>Current Search</strong></a> -
If a <a href="#option-search">regular expression search</a> is in place,
shows the search string.</li>
<li><a name="summary-query"><strong>Query</strong></a> - Provides
a link to a <a href="help_rootview.html#view-query">query form</a>
for the directory</li>
</ul>
<p><a name="list"></a>The actual directory list is a table with
filenames and directory names in one column and information about the
most recent revisions where each file or directory was modified in the
other columns. Column headers can be clicked to sort the directory
entries in order by a column, and clicked again to reverse the sort
order.</p>
<p>
<!-- If using directory.ezt template -->
File names are links to <a href="help_log.html">log views</a>
showing a list of revisions where a file was modified. Revision
numbers are links to either
<a href="help_rootview.html#view-markup">view</a>
or <a href="help_rootview.html#view-checkout">download</a> a file
(depending on its file type). The links are reversed for directories.
Directory revision numbers are links to <a href="help_log.html">log
views</a>, while directory names are links showing the contents of those
directories.
<!-- If using dir_alt.ezt template -->
<!--
File and directory names are links to retrieve their contents.
File links may be either
<a href="help_rootview.html#view-markup">view</a>
or <a href="help_rootview.html#view-download">download</a> links
depending on the file type. Directory links go to directory
listings. Revision numbers are links to <a href="help_log.html">log
views</a> showing lists of revisions where a file or directory was
modified.
-->
Also, in CVS repositories with the <a
href="help_rootview.html#view-graph">graph view</a> enabled, there
will be small icons next to file names which are links to revision
graphs.</p>
<p>Depending on how ViewVC is configured, there may be more options
at the bottom of directory pages:</p>
<ul>
<li><a name="option-search"><strong>Regular expression
search</strong></a> - If enabled, will show a form field accepting
a search string (a
<a href="http://doc.python.org/lib/re-syntax.html">python regular
expression</a>). Once submitted, only files that have at least
one occurance of the expression will show up in directory listings.
</li>
<li><a name="option-tarball"><strong>Tarball download</strong></a> -
If enabled, will show a link to download a gzipped tar archive of
the directory contents.</li>
</ul>
</td></tr></table>
<hr />
<address><a href="mailto:users@viewvc.tigris.org">ViewVC Users Mailinglist</a></address>
</body>
</html>

View File

@ -0,0 +1,71 @@
<!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" xml:lang="en" lang="en">
<head>
<title>ViewVC Help: Log View</title>
<link rel="stylesheet" href="help.css" type="text/css" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table>
<col class="menu" />
<col />
<tr>
<td colspan="2">
<h1>ViewVC Help: Log View</h1>
</td>
</tr>
<tr><td>
<h3>Help</h3>
<a href="help_rootview.html">General</a><br />
<a href="help_dirview.html">Directory&nbsp;View</a><br />
<strong>Log&nbsp;View</strong><br />
<h3>Internet</h3>
<a href="http://viewvc.org/index.html">Home</a><br />
<a href="http://viewvc.org/upgrading.html">Upgrading</a><br />
<a href="http://viewvc.org/contributing.html">Contributing</a><br />
<a href="http://viewvc.org/license-1.html">License</a><br />
</td><td colspan="2">
<p>
The log view displays the revision history of the selected source
file or directory. For each revision the following information is
displayed:
<ul>
<li>The revision number. In Subversion repositories, this is a
link to the <a href="help_rootview.html#view-rev">revision
view</a></li>
<li>For files, links to
<a href="help_rootview.html#view-markup">view</a>,
<a href="help_rootview.html#view-checkout">download</a>, and
<a href="help_rootview.html#view-annotate">annotate</a> the
revision. For directories, a link to
<a href="help_dirview.html">list directory contents</a></li>
<li>A link to select the revision for diffs (see below)</li>
<li>The date and age of the change</li>
<li>The author of the modification</li>
<li>The CVS branch (usually <em>MAIN</em>, if not on a branch)</li>
<li>Possibly a list of CVS tags bound to the revision (if any)</li>
<li>The size of the change measured in added and removed lines of
code. (CVS only)</li>
<li>The size of the file in bytes at the time of the revision
(Subversion only)</li>
<li>Links to view diffs to the previous revision or possibly to
an arbitrary selected revision (if any, see above)</li>
<li>If the revision is the result of a copy, the path and revision
copied from</li>
<li>If the revision precedes a copy or rename, the path at the
time of the revision</li>
<li>And last but not least, the commit log message which should tell
about the reason for the change.</li>
</ul>
<p>
At the bottom of the page you will find a form which allows
to request diffs between arbitrary revisions.
</p>
</td></tr></table>
<hr />
<address><a href="mailto:users@viewvc.tigris.org">ViewVC Users Mailinglist</a></address>
</body>
</html>

View File

@ -0,0 +1,66 @@
<!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" xml:lang="en" lang="en">
<head>
<title>ViewVC Help: Query The Commit Database</title>
<link rel="stylesheet" href="help.css" type="text/css" />
</head>
<body>
<table>
<col class="menu" />
<col />
<tr>
<td colspan="2">
<h1>ViewVC Help: Query The Commit Database</h1>
</td>
</tr>
<tr><td>
<h3>Other&nbsp;Help:</h3>
<a href="help_rootview.html">General</a><br />
<a href="help_dirview.html">Directory&nbsp;View</a><br />
<a href="help_log.html">Classic&nbsp;Log&nbsp;View</a><br />
<a href="help_logtable.html">Alternative&nbsp;Log&nbsp;View</a><br />
<strong>Query&nbsp;Database</strong>
<h3>Internet</h3>
<a href="http://viewvc.org/index.html">Home</a><br />
<a href="http://viewvc.org/upgrading.html">Upgrading</a><br />
<a href="http://viewvc.org/contributing.html">Contributing</a><br />
<a href="http://viewvc.org/license-1.html">License</a><br />
</td><td colspan="2">
<p>
Select your parameters for querying the CVS commit database in the
form at the top of the page. You
can search for multiple matches by typing a comma-seperated list
into the text fields. Regular expressions, and wildcards are also
supported. Blank text input fields are treated as wildcards.
</p>
<p>
Any of the text entry fields can take a comma-seperated list of
search arguments. For example, to search for all commits from
authors <em>jpaint</em> and <em>gstein</em>, just type: <code>jpaint,
gstein</code> in the <em>Author</em> input box. If you are searching
for items containing spaces or quotes, you will need to quote your
request. For example, the same search above with quotes is:
<code>"jpaint", "gstein"</code>.
</p>
<p>
Wildcard and regular expression searches are entered in a similar
way to the quoted requests. You must quote any wildcard or
regular expression request, and a command character preceeds the
first quote. The command character <code>l</code>(lowercase L) is for wildcard
searches, and the wildcard character is a percent (<code>%</code>). The
command character for regular expressions is <code>r</code>, and is
passed directly to MySQL, so you'll need to refer to the MySQL
manual for the exact regex syntax. It is very similar to Perl. A
wildard search for all files with a <em>.py</em> extention is:
<code>l"%.py"</code> in the <em>File</em> input box. The same search done
with a regular expression is: <code>r".*\.py"</code>.
</p>
<p>
All search types can be mixed, as long as they are seperated by
commas.
</p>
</td></tr></table>
</body></html>

View File

@ -0,0 +1,166 @@
<!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" xml:lang="en" lang="en">
<head>
<title>ViewVC Help: General</title>
<link rel="stylesheet" href="help.css" type="text/css" />
</head>
<body>
<table>
<col class="menu" />
<col />
<tr>
<td colspan="2">
<h1>ViewVC Help: General</h1>
</td>
</tr>
<tr><td>
<h3>Help</h3>
<strong>General</strong><br />
<a href="help_dirview.html">Directory&nbsp;View</a><br />
<a href="help_log.html">Log&nbsp;View</a><br />
<h3>Internet</h3>
<a href="http://viewvc.org/index.html">Home</a><br />
<a href="http://viewvc.org/upgrading.html">Upgrading</a><br />
<a href="http://viewvc.org/contributing.html">Contributing</a><br />
<a href="http://viewvc.org/license-1.html">License</a><br />
</td><td colspan="2">
<p><em>ViewVC</em> is a WWW interface for CVS and Subversion
repositories. It allows you to browse the files and directories in a
repository while showing you metadata from the repository history: log
messages, modification dates, author names, revision numbers, copy
history, and so on. It provides several different views of repository
data to help you find the information you are looking for:</p>
<ul>
<li><a name="view-dir" href="help_dirview.html"><strong>Directory
View</strong></a> - Shows a list of files and subdirectories in a
directory of the repository, along with metadata like author names and
log entries.</li>
<li><a name="view-log" href="help_log.html"><strong>Log
View</strong></a> - Shows a revision by revision list of all the
changes that have made to a file or directory in the repository, with
metadata and links to views of each revision.</li>
<li><a name="view-markup"><strong>File Contents View (Markup
View)</strong></a> - Shows the contents of a file at a particular
revision, with revision information at the top of the page. File
revisions which are GIF, PNG, or JPEG images are displayed inline on
the page. Other file types are displayed as marked up text. The markup
may be limited to turning URLs and email addresses into links, or
configured to show colorized source code.</li>
<li><a name="view-checkout"><strong>File Download (Checkout
View)</strong></a> - Retrieves the unaltered contents of a file
revision. Browsers may try to display the file, or just save it to
disk.</li>
<li><a name="view-annotate"><strong>File Annotate View</strong></a> -
Shows the contents of a file revision and breaks it down line by line,
showing the revision number where each one was last modified, along
with links and other information. <em>This view is disabled in some
ViewVC configurations</em></li>
<li><a name="view-diff"><strong>File Diff View</strong></a> - Shows
the changes made between two revisions of a file</li>
<li><a name="view-tarball"><strong>Directory Tarball View</strong> -
Retrieves a gzipped tar archive containing the contents of a
directory.<em>This view is disabled in the default ViewVC
configuration.</em></li>
<li><a name="view-query"><strong>Directory Query View</strong></a> -
Shows information about changes made to all subdirectories and files
under a parent directory, sorted and filtered by criteria you specify.
<em>This view is disabled in the default ViewVC configuration.</em>
</li>
<li><a name="view-rev"><strong>Revision View</strong> - Shows
information about a revision including log message, author, and a list
of changed paths. <em>For Subversion repositories only.</em></li>
<li><a name="view-graph"><strong>Graph View</strong></a> - Shows a
graphical representation of a file's revisions and branches complete
with tag and author names and links to markup and diff pages.
<em>For CVS repositories only, and disabled in the default
configuration.</em></li>
</ul>
<h3><a name="multiple-repositories">Multiple Repositories</a></h3>
<p>A single installation of ViewVC is often used to provide access to
more than one repository. In these installations, ViewVC shows a
<em>Project Root</em> drop down box in the top right corner of every
generated page to allow for quick access to any repository.</p>
<h3><a name="sticky-revision-tag">Sticky Revision and Tag</a></h3>
<p>By default, ViewVC will show the files and directories and revisions
that currently exist in the repository. But it's also possible to browse
the contents of a repository at a point in its past history by choosing
a "sticky tag" (in CVS) or a "sticky revision" (in Subversion) from the
forms at the top of directory and log pages. They're called sticky
because once they're chosen, they stick around when you navigate to
other pages, until you reset them. When they're set, directory and log
pages only show revisions preceding the specified point in history. In
CVS, when a tag refers to a branch or a revision on a branch, only
revisions from the branch history are shown, including branch points and
their preceding revisions.</p>
<h3><a name="dead-files">Dead Files</a></h3>
<p>In CVS directory listings, ViewVC can optionally display dead files.
Dead files are files which used to be in a directory but are currently
deleted, or files which just don't exist in the currently selected
<a href="#sticky-revision-tag">sticky tag</a>. Dead files cannot be
shown in Subversion repositories. The only way to see a deleted file in
a Subversion directory is to navigate to a sticky revision where the
file previously existed.</p>
<h3><a name="artificial-tags">Artificial Tags</a></h3>
<p>In CVS Repositories, ViewVC adds artificial tags <em>HEAD</em> and
<em>MAIN</em> to tag listings and accepts them in place of revision
numbers and real tag names in all URLs. <em>MAIN</em> acts like a branch
tag pointing at the default branch, while <em>HEAD</em> acts like a
revision tag pointing to the latest revision on the default branch. The
default branch is usually just the trunk, but may be set to other
branches inside individual repository files. CVS will always check out
revisions from a file's default branch when no other branch is specified
on the command line.</p>
<h3><a name="more-information">More Information</a></h3>
<p>More information about <em>ViewVC</em> is available from
<a href="http://viewvc.org/">viewvc.org</a>.
See the links below for guides to CVS and Subversion</p>
<h4>Documentation about CVS</h4>
<blockquote>
<p>
<a href="http://cvsbook.red-bean.com/"><em>Open Source
Development with CVS</em></a><br />
<a href="http://www.loria.fr/~molli/cvs/doc/cvs_toc.html">CVS
User's Guide</a><br />
<a href="http://cellworks.washington.edu/pub/docs/cvs/tutorial/cvs_tutorial_1.html">Another CVS tutorial</a><br />
<a href="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">Yet another CVS tutorial (a little old, but nice)</a><br />
<a href="http://www.cs.utah.edu/dept/old/texinfo/cvs/FAQ.txt">An old but very useful FAQ about CVS</a>
</p>
</blockquote>
<h4>Documentation about Subversion</h3>
<blockquote>
<p>
<a href="http://svnbook.red-bean.com/"><em>Version Control with
Subversion</em></a><br />
</p>
</blockquote>
</td></tr></table>
<hr />
<address><a href="mailto:users@viewvc.tigris.org">ViewVC Users Mailinglist</a></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1004 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -0,0 +1,4 @@
function jumpTo(url)
{
window.location = url;
}

View File

@ -0,0 +1,339 @@
/*******************************/
/*** ViewVC CSS Stylesheet ***/
/*******************************/
/*** Standard Tags ***/
html, body {
background-color: white;
color: black;
font-family: sans-serif;
font-size: 100%;
margin: 5px;
}
h2 {
border-top: 3px solid #d0d775;
font-size: 115%;
font-weight: bold;
}
a {
text-decoration: none;
color: rgb(30%,30%,60%);
}
img { border: none; }
table {
width: 100%;
margin: 0;
border: none;
}
td, th {
vertical-align: top;
}
th { white-space: nowrap; }
table.auto {
width: auto;
}
table.fixed {
width: 100%;
table-layout: fixed;
}
table.fixed td {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
form { margin: 0; }
address { font-style: normal; display: inline; }
.inline { display: inline; }
/*** Icons ***/
.vc_icon {
width: 16px;
height: 16px;
border: none;
padding: 0 1px;
}
#vc_header {
padding: 0 0 10px 0;
border-bottom: 10px solid #94bd5e;
}
#vc_footer {
text-align: right;
font-size: 85%;
padding: 10px 0 0 0;
border-top: 10px solid #94bd5e;
}
#vc_topmatter {
float: right;
text-align: right;
font-size: 85%;
}
#vc_current_path {
color: rgb(50%,50%,50%);
padding: 10px 0;
font-size: 140%;
font-weight: bold;
}
#vc_current_path a {
color: rgb(60%,60%,60%);
}
#vc_current_path a:hover {
background-color: rgb(90%,90%,90%);
}
#vc_current_path .thisitem {
color: #94bd5e;
}
#vc_current_path .pathdiv {
padding: 0 0.1em;
}
#vc_view_selection_group {
background: black;
color: white;
margin: 0 0 5px 0;
padding: 5px;
text-align: right;
}
#vc_view_selection_group a {
padding: 5px;
font-size: 100%;
color: white;
text-decoration: none;
}
#vc_view_selection_group a.vc_view_link_this, #vc_view_selection_group a.vc_view_link:hover {
color: #94bd5e;
}
#vc_view_selection_group a:hover {
background-color: black;
}
#vc_view_main {
border-top: 1px solid black;
border-bottom: 1px solid black;
}
#vc_togglables {
text-align: right;
font-size: 85%;
}
#vc_main_body {
background: white;
padding: 5px 0 20px 0;
}
#vc_view_summary {
font-size: 85%;
text-align: right;
margin-top: 5px;
}
/*** Table Headers ***/
.vc_header, .vc_header_sort {
text-align: left;
vertical-align: top;
border-bottom: 1px solid black;
background-color: rgb(80%,80%,80%);
}
.vc_header_sort {
background-color: rgb(85%,85%,85%);
}
/*** Table Rows ***/
.vc_row_even {
background-color: rgb(95%,95%,95%);
}
.vc_row_odd {
background-color: rgb(90%,90%,90%);
}
/*** Directory View ***/
#dirlist td, #dirlist th {
padding: 0.2em;
vertical-align: middle;
}
#dirlist tr:hover {
background-color: white;
}
/*** Log messages ***/
.vc_log {
/* unfortunately, white-space: pre-wrap isn't widely supported ... */
white-space: -moz-pre-wrap; /* Mozilla based browsers */
white-space: -pre-wrap; /* Opera 4 - 6 */
white-space: -o-pre-wrap; /* Opera >= 7 */
white-space: pre-wrap; /* CSS3 */
word-wrap: break-word; /* IE 5.5+ */
}
/*** Changed Paths Listing ***/
.vc_changedpaths {
margin: 1em 0 1em 2em;
}
/*** Properties Listing ***/
.vc_properties {
margin: 1em 0 1em 2em;
}
.vc_properties td, .vc_properties th {
padding: 0.2em;
}
/*** File Content Markup Styles ***/
.vc_summary {
background-color: #eeeeee;
}
#vc_file td {
border-right-style: solid;
border-right-color: #505050;
text-decoration: none;
font-weight: normal;
font-style: normal;
padding: 1px 5px;
}
.vc_file_line_number {
border-right-width: 1px;
background-color: #eeeeee;
color: #505050;
text-align: right;
}
.vc_file_line_author, .vc_file_line_rev {
border-right-width: 1px;
text-align: right;
}
.vc_file_line_text {
border-right-width: 0px;
background-color: white;
font-family: monospace;
text-align: left;
white-space: pre;
width: 100%;
}
.pygments-c { color: #408080; font-style: italic } /* Comment */
.pygments-err { border: 1px solid #FF0000 } /* Error */
.pygments-k { color: #008000; font-weight: bold } /* Keyword */
.pygments-o { color: #666666 } /* Operator */
.pygments-cm { color: #408080; font-style: italic } /* Comment.Multiline */
.pygments-cp { color: #BC7A00 } /* Comment.Preproc */
.pygments-c1 { color: #408080; font-style: italic } /* Comment.Single */
.pygments-cs { color: #408080; font-style: italic } /* Comment.Special */
.pygments-gd { color: #A00000 } /* Generic.Deleted */
.pygments-ge { font-style: italic } /* Generic.Emph */
.pygments-gr { color: #FF0000 } /* Generic.Error */
.pygments-gh { color: #000080; font-weight: bold } /* Generic.Heading */
.pygments-gi { color: #00A000 } /* Generic.Inserted */
.pygments-go { color: #808080 } /* Generic.Output */
.pygments-gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.pygments-gs { font-weight: bold } /* Generic.Strong */
.pygments-gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.pygments-gt { color: #0040D0 } /* Generic.Traceback */
.pygments-kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.pygments-kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.pygments-kp { color: #008000 } /* Keyword.Pseudo */
.pygments-kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.pygments-kt { color: #B00040 } /* Keyword.Type */
.pygments-m { color: #666666 } /* Literal.Number */
.pygments-s { color: #BA2121 } /* Literal.String */
.pygments-na { color: #7D9029 } /* Name.Attribute */
.pygments-nb { color: #008000 } /* Name.Builtin */
.pygments-nc { color: #0000FF; font-weight: bold } /* Name.Class */
.pygments-no { color: #880000 } /* Name.Constant */
.pygments-nd { color: #AA22FF } /* Name.Decorator */
.pygments-ni { color: #999999; font-weight: bold } /* Name.Entity */
.pygments-ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.pygments-nf { color: #0000FF } /* Name.Function */
.pygments-nl { color: #A0A000 } /* Name.Label */
.pygments-nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.pygments-nt { color: #008000; font-weight: bold } /* Name.Tag */
.pygments-nv { color: #19177C } /* Name.Variable */
.pygments-ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.pygments-w { color: #bbbbbb } /* Text.Whitespace */
.pygments-mf { color: #666666 } /* Literal.Number.Float */
.pygments-mh { color: #666666 } /* Literal.Number.Hex */
.pygments-mi { color: #666666 } /* Literal.Number.Integer */
.pygments-mo { color: #666666 } /* Literal.Number.Oct */
.pygments-sb { color: #BA2121 } /* Literal.String.Backtick */
.pygments-sc { color: #BA2121 } /* Literal.String.Char */
.pygments-sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.pygments-s2 { color: #BA2121 } /* Literal.String.Double */
.pygments-se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.pygments-sh { color: #BA2121 } /* Literal.String.Heredoc */
.pygments-si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.pygments-sx { color: #008000 } /* Literal.String.Other */
.pygments-sr { color: #BB6688 } /* Literal.String.Regex */
.pygments-s1 { color: #BA2121 } /* Literal.String.Single */
.pygments-ss { color: #19177C } /* Literal.String.Symbol */
.pygments-bp { color: #008000 } /* Name.Builtin.Pseudo */
.pygments-vc { color: #19177C } /* Name.Variable.Class */
.pygments-vg { color: #19177C } /* Name.Variable.Global */
.pygments-vi { color: #19177C } /* Name.Variable.Instance */
.pygments-il { color: #666666 } /* Literal.Number.Integer.Long */
/*** Diff Styles ***/
.vc_diff_plusminus { width: 1em; }
.vc_diff_remove, .vc_diff_add, .vc_diff_changes1, .vc_diff_changes2 {
font-family: monospace;
white-space: pre;
}
.vc_diff_remove { background: rgb(100%,60%,60%); }
.vc_diff_add { background: rgb(60%,100%,60%); }
.vc_diff_changes1 { background: rgb(100%,100%,70%); color: rgb(50%,50%,50%); text-decoration: line-through; }
.vc_diff_changes2 { background: rgb(100%,100%,0%); }
.vc_diff_nochange, .vc_diff_binary, .vc_diff_error {
font-family: sans-serif;
font-size: smaller;
}
/*** Intraline Diff Styles ***/
.vc_idiff_add {
background-color: #aaffaa;
}
.vc_idiff_change {
background-color:#ffff77;
}
.vc_idiff_remove {
background-color:#ffaaaa;
}
.vc_idiff_empty {
background-color:#e0e0e0;
}
table.vc_idiff col.content {
width: 50%;
}
table.vc_idiff tbody {
font-family: monospace;
/* unfortunately, white-space: pre-wrap isn't widely supported ... */
white-space: -moz-pre-wrap; /* Mozilla based browsers */
white-space: -pre-wrap; /* Opera 4 - 6 */
white-space: -o-pre-wrap; /* Opera >= 7 */
white-space: pre-wrap; /* CSS3 */
word-wrap: break-word; /* IE 5.5+ */
}
table.vc_idiff tbody th {
background-color:#e0e0e0;
text-align:right;
}
/*** Query Form ***/
.vc_query_form {
}

View File

@ -0,0 +1,51 @@
<!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" xml:lang="en" lang="en">
<!-- ViewVC :: http://www.viewvc.org/ -->
<head>
<title>ViewVC Exception</title>
</head>
<body>
<h3>An Exception Has Occurred</h3>
[if-any msg]
<p>[msg]</p>
[end]
[if-any status]
<h4>HTTP Response Status</h4>
<p><pre>[status]</pre></p>
<hr />
[end]
[if-any msg][else]
<h4>Python Traceback</h4>
<p><pre>
[stacktrace]
</pre></p>
[end]
[# Here follows a bunch of space characters, present to ensure that
our error message is larger than 512 bytes so that IE's "Friendly
Error Message" won't show. For more information, see
http://oreillynet.com/onjava/blog/2002/09/internet_explorer_subverts_err.html]
</body>
</html>

View File

@ -0,0 +1,61 @@
[# setup page definitions]
[define page_title]Annotation of:[end]
[define help_href][docroot]/help_rootview.html[end]
[# end]
[include "include/header.ezt" "annotate"]
[include "include/fileview.ezt"]
<div id="vc_main_body">
<!-- ************************************************************** -->
[define last_rev]0[end]
[define rowclass]vc_row_odd[end]
[if-any lines]
<div id="vc_file">
<table cellspacing="0" cellpadding="0">
<tr>
<th class="vc_header">Line</th>
[is annotation "annotated"]
<th class="vc_header">User</th>
<th class="vc_header">Rev</th>
[end]
<th class="vc_header">File contents</th>
</tr>
[for lines]
[is lines.rev last_rev]
[else]
[is rowclass "vc_row_even"]
[define rowclass]vc_row_odd[end]
[else]
[define rowclass]vc_row_even[end]
[end]
[end]
<tr class="[rowclass]" id="l[lines.line_number]">
<td class="vc_file_line_number">[lines.line_number]</td>
[is annotation "annotated"]
<td class="vc_file_line_author">[is lines.rev last_rev]&nbsp;[else][lines.author][end]</td>
<td class="vc_file_line_rev">[is lines.rev last_rev]&nbsp;[else][if-any lines.diff_href]<a href="[lines.diff_href]">[end][lines.rev][if-any lines.diff_href]</a>[end][end]</td>
[end]
<td class="vc_file_line_text">[lines.text]</td>
</tr>
[define last_rev][lines.rev][end]
[end]
</table>
</div>
[else]
[if-any image_src_href]
<div id="vc_file_image">
<img src="[image_src_href]" alt="" />
</div>
[end]
[end]
[include "include/props.ezt"]
<!-- ************************************************************** -->
</div>
[include "include/footer.ezt"]

View File

@ -0,0 +1,15 @@
[# setup page definitions]
[define page_title]Graph of:[end]
[define help_href][docroot]/help_rootview.html[end]
[# end]
[include "include/header.ezt" "graph"]
<div style="text-align:center;">
[imagemap]
<img usemap="#MyMapName"
src="[imagesrc]"
alt="Revisions of [where]" />
</div>
[include "include/footer.ezt"]

View File

@ -0,0 +1,70 @@
<div style="border-bottom: solid 1px black;">
<p id="diff">This form allows you to request diffs between any two
revisions of this file.
For each of the two "sides" of the diff,
[if-any tags]
select a symbolic revision name using the selection box, or choose
'Use Text Field' and enter a numeric revision.
[else]
enter a numeric revision.
[end]
</p>
<form method="get" action="[diff_select_action]" id="diff_select">
<table cellpadding="2" cellspacing="0" class="auto">
<tr>
<td>&nbsp;</td>
<td>
[for diff_select_hidden_values]<input type="hidden" name="[diff_select_hidden_values.name]" value="[diff_select_hidden_values.value]"/>[end]
Diffs between
[if-any tags]
<select name="r1">
<option value="text" selected="selected">Use Text Field</option>
[for tags]
<option value="[tags.rev]:[tags.name]">[tags.name]</option>
[end]
</select>
<input type="text" size="12" name="tr1"
value="[if-any rev_selected][rev_selected][else][first_revision][end]"
onchange="document.getElementById('diff_select').r1.selectedIndex=0" />
[else]
<input type="text" size="12" name="r1"
value="[if-any rev_selected][rev_selected][else][first_revision][end]" />
[end]
and
[if-any tags]
<select name="r2">
<option value="text" selected="selected">Use Text Field</option>
[for tags]
<option value="[tags.rev]:[tags.name]">[tags.name]</option>
[end]
</select>
<input type="text" size="12" name="tr2"
value="[last_revision]"
onchange="document.getElementById('diff_select').r2.selectedIndex=0" />
[else]
<input type="text" size="12" name="r2" value="[last_revision]" />
[end]
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
Type of Diff should be a
<select name="diff_format" onchange="submit()">
<option value="h" [is diff_format "h"]selected="selected"[end]>Colored Diff</option>
<option value="l" [is diff_format "l"]selected="selected"[end]>Long Colored Diff</option>
<option value="f" [is diff_format "f"]selected="selected"[end]>Full Colored Diff</option>
<option value="u" [is diff_format "u"]selected="selected"[end]>Unidiff</option>
<option value="c" [is diff_format "c"]selected="selected"[end]>Context Diff</option>
<option value="s" [is diff_format "s"]selected="selected"[end]>Side by Side</option>
</select>
<input type="submit" value=" Get Diffs " />
</td>
</tr>
</table>
</form>
</div>

View File

@ -0,0 +1,74 @@
<table class="auto">
<tr>
<td>Revision:</td>
<td><strong>[if-any revision_href]<a href="[revision_href]">[rev]</a>[else][rev][end]</strong> [if-any vendor_branch] <em>(vendor branch)</em>[end]</td>
</tr>
<tr>
<tr>
<td>Committed:</td>
<td>[if-any date]<em>[date]</em> [end][if-any ago]([ago] ago) [end][if-any author]by <em>[author]</em>[end]</td>
</tr>
[if-any orig_path]
<tr>
<td>Original Path:</td>
<td><strong><a href="[orig_href]"><em>[orig_path]</em></a></strong></td>
</tr>
[end]
[if-any branches]
<tr>
<td>Branch:</td>
<td><strong>[branches]</strong></td>
</tr>
[end]
[if-any tags]
<tr>
<td>CVS Tags:</td>
<td><strong>[tags]</strong></td>
</tr>
[end]
[if-any branch_points]
<tr>
<td>Branch point for:</td>
<td><strong>[branch_points]</strong></td>
</tr>
[end]
[is roottype "cvs"][if-any changed]
<tr>
<td>Changes since <strong>[prev]</strong>:</td>
<td><strong>[changed] lines</strong></td>
</tr>
[end][end]
[is roottype "svn"][if-any size]
<td>File size:</td>
<td>[size] byte(s)</td>
</tr>
[end][end]
[if-any lockinfo]
<td>Lock status:</td>
<td>[lockinfo]</td>
[end]
[is state "dead"]
<tr>
<td>State:</td>
<td><strong><em>FILE REMOVED</em></strong></td>
</tr>
[end]
[if-any annotation]
[is annotation "binary"]
<tr>
<td colspan="2"><strong>Unable to calculate annotation data on binary file contents.</strong></td>
</tr>
[end]
[is annotation "error"]
<tr>
<td colspan="2"><strong>Error occurred while calculating annotation data.</strong></td>
</tr>
[end]
[end]
[if-any log]
<tr>
<td>Log Message:</td>
<td><pre class="vc_log">[log]</span></td>
</tr>
[end]
</table>

View File

@ -0,0 +1,10 @@
</div> <!-- vc_view_main -->
<div id="vc_footer">
[if-any cfg.general.address]Administered by <address><a href="mailto:[cfg.general.address]">[cfg.general.address]</a></address><br/>[end]
Powered by <a href="http://viewvc.tigris.org/">ViewVC [vsn]</a>
[if-any rss_href]<br/><a href="[rss_href]" title="RSS 2.0 feed"><img src="[docroot]/images/feed-icon-16x16.jpg" class="vc_icon" alt="RSS 2.0 feed" /></a>[else]&nbsp;[end]
</div>
</body>
</html>

View File

@ -0,0 +1,71 @@
<!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" xml:lang="en" lang="en">
<!-- ViewVC :: http://www.viewvc.org/ -->
<head>
<title>[[]ViewVC] [page_title] [if-any rootname][rootname][if-any where]/[where][end][end]</title>
<meta name="generator" content="ViewVC [vsn]" />
<link rel="stylesheet" href="[docroot]/styles.css" type="text/css" />
<script src="[docroot]/scripts.js"></script>
[if-any rss_href]
<link rel="alternate" type="application/rss+xml" href="[rss_href]" title="ViewVC RSS: [if-any rootname][rootname][if-any where]/[where][end][end]">
[end]
</head>
<body>
<div id="vc_header">
<div id="vc_topmatter">
[if-any username]Logged in as: <strong>[username]</strong> |[end]
<a href="[help_href]">ViewVC Help</a>
</div>
<div id="vc_logo">
<a href="http://www.viewvc.org/"><img src="[docroot]/images/viewvc-logo.png" alt="ViewVC logotype" width="240" height="70" /></a>
</div>
<div id="vc_view_selection_group">
[is pathtype "dir"]
<a class="vc_view_link[is view "dir"]_this[end]" href="[view_href]">View Directory</a>
[if-any log_href]
| <a class="vc_view_link[is view "log"]_this[end]" href="[log_href]">Revision Log</a>
[end]
[if-any queryform_href]
| <a class="vc_view_link[is view "queryform"]_this[end]" href="[queryform_href]">Commit Query</a>
[end]
[if-any tarball_href]
| <a class="vc_view_link" href="[tarball_href]">Download Tarball</a>
[end]
[end]
[is pathtype "file"]
[if-any view_href]
<a class="vc_view_link[is view "markup"]_this[end]" href="[view_href]">View File</a> |
[end]
<a class="vc_view_link[is view "log"]_this[end]" href="[log_href]">Revision Log</a>
[if-any annotate_href]
| <a class="vc_view_link[is view "annotate"]_this[end]" href="[annotate_href]">Show Annotations</a>
[end]
[if-any graph_href]
| <a class="vc_view_link[is view "graph"]_this[end]" href="[graph_href]">Revision Graph</a>
[end]
[if-any download_href]
| <a class="vc_view_link" href="[download_href]">Download File</a>
[end]
[end]
[if-any revision_href]
| <a class="vc_view_link[is view "revision"]_this[end]" href="[revision_href]">View Changeset</a>
[end]
[if-any roots_href]
| <a class="vc_view_link[is view "roots"]_this[end]" href="[roots_href]">Root Listing</a>
[end]
</div>
<div id="vc_current_path">
[if-any roots_href]<a href="[roots_href]">root</a>[end][if-any nav_path]<span class="pathdiv">/</span>[for nav_path][if-any nav_path.href]<a href="[nav_path.href]">[end][if-index nav_path last]<span class="thisitem">[end][nav_path.name][if-index nav_path last]</span>[end][if-any nav_path.href]</a>[end][if-index nav_path last][else]<span class="pathdiv">/</span>[end][end][end]
</div>
</div> <!-- vc_header -->
<div id="vc_view_main">

View File

@ -0,0 +1,53 @@
<form method="get" action="[pathrev_action]" style="display: inline">
<div style="display: inline">
[for pathrev_hidden_values]<input type="hidden" name="[pathrev_hidden_values.name]" value="[pathrev_hidden_values.value]"/>[end]
[is roottype "cvs"]
[define pathrev_selected][pathrev][end]
<select name="pathrev" onchange="submit()">
<option value=""></option>
[if-any branch_tags]
<optgroup label="Branches">
[for branch_tags]
[is branch_tags pathrev]
<option selected>[branch_tags]</option>
[define pathrev_selected][end]
[else]
<option>[branch_tags]</option>
[end]
[end]
</optgroup>
[end]
<optgroup label="Non-branch tags">
[for plain_tags]
[is plain_tags pathrev]
<option selected>[plain_tags]</option>
[define pathrev_selected][end]
[else]
<option>[plain_tags]</option>
[end]
[end]
</optgroup>
[if-any pathrev_selected]
<option selected>[pathrev_selected]</option>
[end]
</select>
[else]
<input type="text" name="pathrev" value="[pathrev]" size="6"/>
[end]
<input type="submit" value="Set Sticky [is roottype "cvs"]Tag[else]Revision[end]" />
</div>
</form>
[if-any pathrev]
<form method="get" action="[pathrev_clear_action]" style="display: inline">
<div style="display: inline">
[for pathrev_clear_hidden_values]<input type="hidden" name="[pathrev_clear_hidden_values.name]" value="[pathrev_clear_hidden_values.value]"/>[end]
[if-any lastrev]
[is pathrev lastrev][else]<input type="submit" value="Set to [lastrev]" />[end]
(<i>Current path doesn't exist after revision <strong>[lastrev]</strong></i>)
[else]
<input type="submit" value="Clear" />
[end]
</div>
</form>
[end]

View File

@ -0,0 +1,25 @@
[if-any properties]
<h2>Properties</h2>
<div class="vc_properties">
<table cellspacing="2" class="fixed">
<thead>
<tr>
<th class="vc_header_sort" style="width: 200px;">Name</th>
<th class="vc_header">Value</th>
</tr>
</thead>
<tbody>
[for properties]
<tr class="vc_row_[if-index properties even]even[else]odd[end]">
<td><strong>[properties.name]</strong></td>
[if-any properties.undisplayable]
<td><em>Property value is undisplayable.</em></td>
[else]
<td style="white-space: pre;">[properties.value]</td>
[end]
</tr>
[end]
</tbody>
</table>
</div>
[end]

247
templates/default/log.ezt Normal file
View File

@ -0,0 +1,247 @@
[# setup page definitions]
[define page_title]Log of:[end]
[define help_href][docroot]/help_log.html[end]
[# end]
[include "include/header.ezt" "log"]
<table class="auto">
[if-any default_branch]
<tr>
<td>Default branch:</td>
<td>[for default_branch]<a href="[default_branch.href]">[default_branch.name]</a>[if-index default_branch last][else], [end]
[end]</td>
</tr>
[end]
[is pathtype "file"]
[if-any view_href]
<tr>
<td>Links to HEAD:</td>
<td>
(<a href="[view_href]">view</a>)
[if-any download_href](<a href="[download_href]">download</a>)[end]
[if-any download_text_href](<a href="[download_text_href]">as text</a>)[end]
[if-any annotate_href](<a href="[annotate_href]">annotate</a>)[end]
</td>
</tr>
[end]
[if-any tag_view_href]
<tr>
<td>Links to [pathrev]:</td>
<td>
(<a href="[tag_view_href]">view</a>)
[if-any tag_download_href](<a href="[tag_download_href]">download</a>)[end]
[if-any tag_download_text_href](<a href="[tag_download_text_href]">as text</a>)[end]
[if-any tag_annotate_href](<a href="[tag_annotate_href]">annotate</a>)[end]
</td>
</tr>
[end]
[end]
<tr>
<td>Sticky [is roottype "cvs"]Tag[else]Revision[end]:</td>
<td>[include "include/pathrev_form.ezt"]</td>
</tr>
[is picklist_len "0"][else][is picklist_len "1"][else]
<tr>
<td>Jump to page:</td>
<td><form method="get" action="[log_paging_action]">
[for log_paging_hidden_values]<input type="hidden" name="[log_paging_hidden_values.name]" value="[log_paging_hidden_values.value]"/>[end]
<select name="log_pagestart" onchange="submit()">
[for picklist]
[if-any picklist.more]
<option [is picklist.count log_pagestart]selected[end] value="[picklist.count]">Page [picklist.page]: [picklist.start] ...</option>
[else]
<option [is picklist.count log_pagestart]selected[end] value="[picklist.count]">Page [picklist.page]: [picklist.start] - [picklist.end]</option>
[end]
[end]
</select>
<input type="submit" value="Go" />
</form>
</td>
</tr>
[end][end]
<tr>
<td>Sort logs by:</td>
<td><form method="get" action="[logsort_action]">
<div>
<a name="logsort"></a>
[for logsort_hidden_values]<input type="hidden" name="[logsort_hidden_values.name]" value="[logsort_hidden_values.value]"/>[end]
<select name="logsort" onchange="submit()">
<option value="cvs" [is logsort "cvs"]selected="selected"[end]>Not sorted</option>
<option value="date" [is logsort "date"]selected="selected"[end]>Commit date</option>
<option value="rev" [is logsort "rev"]selected="selected"[end]>Revision</option>
</select>
<input type="submit" value=" Sort " />
</div>
</form>
</td>
</tr>
</table>
<div id="vc_main_body">
<!-- ************************************************************** -->
[define first_revision][end]
[define last_revision][end]
[for entries]
[if-index entries first][define first_revision][entries.rev][end][end]
[if-index entries last]
[define last_revision][entries.rev][end]
<div>
[else]
<div style="border-bottom: 1px dotted black">
[end]
[is entries.state "dead"]
Revision <strong>[entries.rev]</strong>
[else]
<a name="rev[entries.rev]"></a>
[for entries.tag_names]<a name="[entries.tag_names]"></a>
[end]
[for entries.branch_names]<a name="[entries.branch_names]"></a>
[end]
Revision [is roottype "svn"]<a href="[entries.revision_href]"><strong>[entries.rev]</strong></a>[else]<strong>[entries.rev]</strong>[end] -
[if-any entries.view_href]
[is pathtype "file"]
(<a href="[entries.view_href]">view</a>)
[else]
<a href="[entries.view_href]">Directory Listing</a>
[end]
[end]
[if-any entries.download_href](<a href="[entries.download_href]">download</a>)[end]
[if-any entries.download_text_href](<a href="[entries.download_text_href]">as text</a>)[end]
[if-any entries.annotate_href](<a href="[entries.annotate_href]">annotate</a>)[end]
[is pathtype "file"]
[# if you don't want to allow select for diffs then remove this section]
[is entries.rev rev_selected]
- <strong>[[]selected]</strong>
[else]
- <a href="[entries.sel_for_diff_href]">[[]select for diffs]</a>
[end]
[end]
[end]
[if-any entries.vendor_branch]
<em>(vendor branch)</em>
[end]
<br />
[is roottype "svn"]
[if-index entries last]Added[else]Modified[end]
[end]
<em>[if-any entries.date][entries.date][else](unknown date)[end]</em>
[if-any entries.ago]([entries.ago] ago)[end]
by <em>[if-any entries.author][entries.author][else](unknown author)[end]</em>
[if-any entries.orig_path]
<br />Original Path: <a href="[entries.orig_href]"><em>[entries.orig_path]</em></a>
[end]
[if-any entries.branches]
<br />Branch:
[for entries.branches]
<a href="[entries.branches.href]"><strong>[entries.branches.name]</strong></a>[if-index entries.branches last][else],[end]
[end]
[end]
[if-any entries.tags]
<br />CVS Tags:
[for entries.tags]
<a href="[entries.tags.href]"><strong>[entries.tags.name]</strong></a>[if-index entries.tags last][else],[end]
[end]
[end]
[if-any entries.branch_points]
<br />Branch point for:
[for entries.branch_points]
<a href="[entries.branch_points.href]"><strong>[entries.branch_points.name]</strong></a>[if-index entries.branch_points last][else],[end]
[end]
[end]
[if-any entries.prev]
[if-any entries.changed]
[is roottype "cvs"]
<br />Changes since <strong>[entries.prev]: [entries.changed] lines</strong>
[end]
[end]
[end]
[if-any entries.lockinfo]
<br />Lock status: [entries.lockinfo]
[end]
[is roottype "svn"]
[if-any entries.size]
<br />File length: [entries.size] byte(s)
[end]
[if-any entries.copy_path]
<br />Copied from: <a href="[entries.copy_href]"><em>[entries.copy_path]</em></a> revision [entries.copy_rev]
[end]
[end]
[is entries.state "dead"]
<br /><strong><em>FILE REMOVED</em></strong>
[else]
[is pathtype "file"]
[if-any entries.prev]
<br />Diff to <a href="[entries.diff_to_prev_href]">previous [entries.prev]</a>
[if-any human_readable]
[else]
(<a href="[entries.diff_to_prev_href]&amp;diff_format=h">colored</a>)
[end]
[end]
[is roottype "cvs"]
[if-any entries.branch_point]
, to <a href="[entries.diff_to_branch_href]">branch point [entries.branch_point]</a>
[if-any human_readable]
[else]
(<a href="[entries.diff_to_branch_href]&amp;diff_format=h">colored</a>)
[end]
[end]
[if-any entries.next_main]
, to <a href="[entries.diff_to_main_href]">next main [entries.next_main]</a>
[if-any human_readable]
[else]
(<a href="[entries.diff_to_main_href]&amp;diff_format=h">colored</a>)
[end]
[end]
[end]
[if-any entries.diff_to_sel_href]
[if-any entries.prev], [else]<br />Diff[end]
to <a href="[entries.diff_to_sel_href]">selected [rev_selected]</a>
[if-any human_readable]
[else]
(<a href="[entries.diff_to_sel_href]&amp;diff_format=h">colored</a>)
[end]
[end]
[end]
[end]
<pre class="vc_log">[entries.log]</pre>
</div>
[end]
<!-- ************************************************************** -->
</div>
[is pathtype "file"]
[include "include/diff_form.ezt"]
[end]
[include "include/footer.ezt"]

View File

@ -0,0 +1,18 @@
[# setup page definitions]
[define page_title]View of:[end]
[define help_href][docroot]/help_rootview.html[end]
[# end]
[include "include/header.ezt" "markup"]
[include "include/fileview.ezt"]
<div id="vc_main_body">
<!-- ************************************************************** -->
<div id="vc_markup"><pre>[markup]</pre></div>
[include "include/props.ezt"]
<!-- ************************************************************** -->
</div>
[include "include/footer.ezt"]

241
templates/default/query.ezt Normal file
View File

@ -0,0 +1,241 @@
<!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" xml:lang="en" lang="en">
<!-- ViewVC :: http://www.viewvc.org/ -->
<head>
<title>Checkin Database Query</title>
<link rel="stylesheet" href="[docroot]/styles.css" type="text/css" />
</head>
<body>
[# setup page definitions]
[define help_href][docroot]/help_query.html[end]
[# end]
<p>
Select your parameters for querying the CVS commit database. You
can search for multiple matches by typing a comma-seperated list
into the text fields. Regular expressions, and wildcards are also
supported. Blank text input fields are treated as wildcards.
</p>
<p>
Any of the text entry fields can take a comma-seperated list of
search arguments. For example, to search for all commits from
authors <em>jpaint</em> and <em>gstein</em>, just type: <strong>jpaint,
gstein</strong> in the <em>Author</em> input box. If you are searching
for items containing spaces or quotes, you will need to quote your
request. For example, the same search above with quotes is:
<strong>"jpaint", "gstein"</strong>.
</p>
<p>
Wildcard and regular expression searches are entered in a similar
way to the quoted requests. You must quote any wildcard or
regular expression request, and a command charactor preceeds the
first quote. The command charactor <strong>l</strong> is for wildcard
searches, and the wildcard charactor is a percent (<strong>%</strong>). The
command charactor for regular expressions is <strong>r</strong>, and is
passed directly to MySQL, so you'll need to refer to the MySQL
manual for the exact regex syntax. It is very similar to Perl. A
wildard search for all files with a <em>.py</em> extention is:
<strong>l"%.py"</strong> in the <em>File</em> input box. The same search done
with a regular expression is: <strong>r".*\.py"</strong>.
</p>
<p>
All search types can be mixed, as long as they are seperated by
commas.
</p>
<form method="get" action="">
<div class="vc_query_form">
<table cellspacing="0" cellpadding="2" class="auto">
<tr>
<td>
<table>
<tr>
<td style="vertical-align:top;">
<table>
<tr>
<td align="right">CVS Repository:</td>
<td>
<input type="text" name="repository" size="40" value="[repository]" />
</td>
</tr>
<tr>
<td align="right">CVS Branch:</td>
<td>
<input type="text" name="branch" size="40" value="[branch]" />
</td>
</tr>
<tr>
<td align="right">Directory:</td>
<td>
<input type="text" name="directory" size="40" value="[directory]" />
</td>
</tr>
<tr>
<td align="right">File:</td>
<td>
<input type="text" name="file" size="40" value="[file]" />
</td>
</tr>
<tr>
<td align="right">Author:</td>
<td>
<input type="text" name="who" size="40" value="[who]" />
</td>
</tr>
</table>
</td>
<td style="vertical-align:top;">
<table>
<tr>
<td align="left">Sort By:</td>
<td>
<select name="sortby">
<option value="date" [is sortby "date"]selected="selected"[end]>Date</option>
<option value="author" [is sortby "author"]selected="selected"[end]>Author</option>
<option value="file" [is sortby "file"]selected="selected"[end]>File</option>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<table cellspacing="0" cellpadding="0">
<tr>
<td>Date:</td>
</tr>
<tr>
<td><input type="radio" name="date" value="hours"
[is date "hours"]checked="checked"[end] /></td>
<td>In the last
<input type="text" name="hours" value="[hours]" size="4" />hours
</td>
</tr>
<tr>
<td><input type="radio" name="date" value="day"
[is date "day"]checked="checked"[end] /></td>
<td>In the last day</td>
</tr>
<tr>
<td><input type="radio" name="date" value="week"
[is date "week"]checked="checked"[end] /></td>
<td>In the last week</td>
</tr>
<tr>
<td><input type="radio" name="date" value="month"
[is date "month"]checked="checked"[end] /></td>
<td>In the last month</td>
</tr>
<tr>
<td><input type="radio" name="date" value="all"
[is date "all"]checked="checked"[end] /></td>
<td>Since the beginning of time</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td>
<input type="submit" value="Search" />
</td>
</tr>
</table>
</div>
</form>
[is query "skipped"]
[else]
<p><strong>[num_commits]</strong> matches found.</p>
[if-any commits]
<table cellspacing="0" cellpadding="2">
<thead>
<tr class="vc_header">
<th>Revision</th>
<th>File</th>
<th>Branch</th>
<th>+/-</th>
<th>Date</th>
<th>Author</th>
[# uncommment, if you want a separate Description column: (also see below)
<th>Description</th>
]
</tr>
</thead>
[for commits]
<tbody>
[for commits.files]
<tr class="vc_row_[if-index commits even]even[else]odd[end]">
<td style="vertical-align:top;">
[if-any commits.files.rev][commits.files.rev][else]&nbsp;[end]
</td>
<td style="vertical-align:top;">[commits.files.link]</td>
<td style="vertical-align:top;">
[if-any commits.files.branch][commits.files.branch][else]&nbsp;[end]
</td>
<td style="vertical-align:top;">
[is commits.files.type "Add"]<ins>[end]
[is commits.files.type "Change"]<a href="[commits.files.difflink]">[end]
[is commits.files.type "Remove"]<del>[end]
[commits.files.plus]/[commits.files.minus]
[is commits.files.type "Add"]</ins>[end]
[is commits.files.type "Change"]</a>[end]
[is commits.files.type "Remove"]</del>[end]
</td>
<td style="vertical-align:top;">
[if-any commits.files.date][commits.files.date][else]&nbsp;[end]
</td>
<td style="vertical-align:top;">
[if-any commits.files.author][commits.files.author][else]&nbsp;[end]
</td>
[# uncommment, if you want a separate Description column:
{if-index commits.files first{
<td style="vertical-align:top;" rowspan="{commits.num_files}">
{commits.log}
</td>
{end}
(substitute brackets for the braces)
]
</tr>
[# and also take the following out in the "Description column"-case:]
[if-index commits.files last]
<tr class="vc_row_[if-index commits even]even[else]odd[end]">
<td>&nbsp;</td>
<td colspan="5"><strong>Log:</strong><br />
<pre class="vc_log">[commits.log]</pre></td>
</tr>
[end]
[# ---]
[end]
</tbody>
[end]
<tr class="vc_header">
<th style="text-align:left;vertical-align:top;">&nbsp;</th>
<th style="text-align:left;vertical-align:top;">&nbsp;</th>
<th style="text-align:left;vertical-align:top;">&nbsp;</th>
<th style="text-align:left;vertical-align:top;">&nbsp;</th>
<th style="text-align:left;vertical-align:top;">&nbsp;</th>
<th style="text-align:left;vertical-align:top;">&nbsp;</th>
[# uncommment, if you want a separate Description column:
<th style="text-align:left;vertical-align:top;">&nbsp;</th>
]
</tr>
</table>
[end]
[end]
[include "include/footer.ezt"]

View File

@ -0,0 +1,201 @@
[# setup page definitions]
[define page_title]Query on:[end]
[define help_href][docroot]/help_rootview.html[end]
[# end]
[include "include/header.ezt" "query"]
<form action="[query_action]" method="get">
<div class="vc_query_form">
[for query_hidden_values]<input type="hidden" name="[query_hidden_values.name]" value="[query_hidden_values.value]"/>[end]
<table cellspacing="0" cellpadding="5" class="auto">
[is roottype "cvs"]
[# For subversion, the branch field is not used ]
<tr>
<th style="text-align:right;vertical-align:top;">Branch:</th>
<td>
<input type="text" name="branch" value="[branch]" />
<label for="branch_match_exact">
<input type="radio" name="branch_match" id="branch_match_exact"
value="exact" [is branch_match "exact"]checked="checked"[end] />
exact
</label>
<label for="branch_match_glob">
<input type="radio" name="branch_match" id="branch_match_glob"
value="glob" [is branch_match "glob"]checked="checked"[end] />
glob pattern
</label>
<label for="branch_match_regex">
<input type="radio" name="branch_match" id="branch_match_regex"
value="regex" [is branch_match "regex"]checked="checked"[end] />
regex
</label>
<label for="branch_match_notregex">
<input type="radio" name="branch_match" id="branch_match_notregex"
value="notregex" [is branch_match "notregex"]checked="checked"[end] />
<em>not</em> regex
</label>
</td>
</tr>
[end]
<tr>
<th style="text-align:right;vertical-align:top;">Subdirectory:</th>
<td>
<input type="text" name="dir" value="[dir]" />
<em>(You can list multiple directories separated by commas.)</em>
</td>
</tr>
<tr>
<th style="text-align:right;vertical-align:top;">File:</th>
<td>
<input type="text" name="file" value="[file]" />
<label for="file_match_exact">
<input type="radio" name="file_match" id="file_match_exact"
value="exact" [is file_match "exact"]checked="checked"[end] />
exact
</label>
<label for="file_match_glob">
<input type="radio" name="file_match" id="file_match_glob"
value="glob" [is file_match "glob"]checked="checked"[end] />
glob pattern
</label>
<label for="file_match_regex">
<input type="radio" name="file_match" id="file_match_regex"
value="regex" [is file_match "regex"]checked="checked"[end] />
regex
</label>
<label for="file_match_notregex">
<input type="radio" name="file_match" id="file_match_notregex"
value="notregex" [is file_match "notregex"]checked="checked"[end] />
<em>not</em> regex
</label>
</td>
</tr>
<tr>
<th style="text-align:right;vertical-align:top;">Who:</th>
<td>
<input type="text" name="who" value="[who]" />
<label for="who_match_exact">
<input type="radio" name="who_match" id="who_match_exact"
value="exact" [is who_match "exact"]checked="checked"[end] />
exact
</label>
<label for="who_match_glob">
<input type="radio" name="who_match" id="who_match_glob"
value="glob" [is who_match "glob"]checked="checked"[end] />
glob pattern
</label>
<label for="who_match_regex">
<input type="radio" name="who_match" id="who_match_regex"
value="regex" [is who_match "regex"]checked="checked"[end] />
regex
</label>
<label for="who_match_notregex">
<input type="radio" name="who_match" id="who_match_notregex"
value="notregex" [is who_match "notregex"]checked="checked"[end] />
<em>not</em> regex
</label>
</td>
</tr>
<tr>
<th style="text-align:right;vertical-align:top;">Comment:</th>
<td>
<input type="text" name="comment" value="[comment]" />
<label for="comment_match_exact">
<input type="radio" name="comment_match" id="comment_match_exact"
value="exact" [is comment_match "exact"]checked=""[end] />
exact
</label>
<label for="comment_match_glob">
<input type="radio" name="comment_match" id="comment_match_glob"
value="glob" [is comment_match "glob"]checked=""[end] />
glob pattern
</label>
<label for="comment_match_regex">
<input type="radio" name="comment_match" id="comment_match_regex"
value="regex" [is comment_match "regex"]checked=""[end] />
regex
</label>
<label for="comment_match_notregex">
<input type="radio" name="comment_match" id="comment_match_notregex"
value="notregex" [is comment_match "notregex"]checked=""[end] />
<em>not</em> regex
</label>
</td>
</tr>
<tr>
<th style="text-align:right;vertical-align:top;">Sort By:</th>
<td>
<select name="querysort">
<option value="date" [is querysort "date"]selected="selected"[end]>Date</option>
<option value="author" [is querysort "author"]selected="selected"[end]>Author</option>
<option value="file" [is querysort "file"]selected="selected"[end]>File</option>
</select>
</td>
</tr>
<tr>
<th style="text-align:right;vertical-align:top;">Date:</th>
<td>
<table cellspacing="0" cellpadding="0">
<tr>
<td><input type="radio" name="date" id="date_hours"
value="hours" [is date "hours"]checked="checked"[end] /></td>
<td>
<label for="date_hours">In the last</label>
<input type="text" name="hours" value="[hours]" size="4" />
hours
</td>
</tr>
<tr>
<td><input type="radio" name="date" id="date_day"
value="day" [is date "day"]checked="checked"[end] /></td>
<td><label for="date_day">In the last day</label></td>
</tr>
<tr>
<td><input type="radio" name="date" id="date_week"
value="week" [is date "week"]checked="checked"[end] /></td>
<td><label for="date_week">In the last week</label></td>
</tr>
<tr>
<td><input type="radio" name="date" id="date_month"
value="month" [is date "month"]checked="checked"[end] /></td>
<td><label for="date_month">In the last month</label></td>
</tr>
<tr>
<td><input type="radio" name="date" id="date_all"
value="all" [is date "all"]checked="checked"[end] /></td>
<td><label for="date_all">Since the beginning of time</label></td>
</tr>
<tr>
<td><input type="radio" name="date" id="date_explicit"
value="explicit" [is date "explicit"]checked="checked"[end] /></td>
<td>
<label for="date_explicit">Between</label>
<input type="text" name="mindate" value="[mindate]" size="20" />
and
<input type="text" name="maxdate" value="[maxdate]" size="20" />
<br />
(use the form <strong>yyyy-mm-dd hh:mm:ss</strong>)
</td>
</tr>
</table>
</td>
</tr>
<tr>
<th style="text-align:right;vertical-align:top;">Limit:</th>
<td>
Show at most
<input type="text" name="limit_changes" value="[limit_changes]" size="5" />
changed files per commit. <em>(Use 0 to show all files.)</em>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Search" /></td>
</tr>
</table>
</div>
</form>
[include "include/footer.ezt"]

View File

@ -0,0 +1,86 @@
[# setup page definitions]
[define page_title]Query results in:[end]
[define help_href][docroot]/help_rootview.html[end]
[# end]
[include "include/header.ezt"]
<p><strong>[english_query]</strong></p>
[# <!-- {sql} --> ]
<p><a href="[queryform_href]">Modify query</a></p>
<p><a href="[backout_href]">Show commands which could be used to back out these changes</a></p>
<p><strong>+[plus_count]/-[minus_count]</strong> lines changed.</p>
[if-any commits]
<table cellspacing="1" cellpadding="2">
<thead>
<tr>
<th class="vc_header">Revision</th>
<th class="vc_header[is querysort "file"]_sort[end]">File</th>
[if-any show_branch]
<th class="vc_header">Branch</th>
[end]
<th class="vc_header">+/-</th>
<th class="vc_header[is querysort "date"]_sort[end]">Date</th>
<th class="vc_header[is querysort "author"]_sort[end]">Author</th>
[# uncommment, if you want a separate Description column: (also see below)
<th class="vc_header">Description</th>
]
</tr>
</thead>
[for commits]
[for commits.files]
<tbody>
<tr class="vc_row_[if-index commits even]even[else]odd[end]">
<td style="vertical-align: top;">
[define rev_href][if-any commits.files.prefer_markup][commits.files.view_href][else][if-any commits.files.download_href][commits.files.download_href][end][end][end]
[if-any commits.files.rev][if-any rev_href]<a href="[rev_href]">[end][commits.files.rev][if-any rev_href]</a>[end][else]&nbsp;[end]
</td>
<td style="vertical-align: top;">
<a href="[commits.files.dir_href]">[commits.files.dir]/</a>
<a href="[commits.files.log_href]">[commits.files.file]</a>
</td>
[if-any show_branch]
<td style="vertical-align: top;">
[if-any commits.files.branch][commits.files.branch][else]&nbsp;[end]
</td>
[end]
<td style="vertical-align: top;">
[# only show a diff link for changes ]
[is commits.files.type "Add"]<ins>[end]
[is commits.files.type "Change"]<a href="[commits.files.diff_href]">[end]
[is commits.files.type "Remove"]<del>[end]
[commits.files.plus]/[commits.files.minus]
[is commits.files.type "Add"]</ins>[end]
[is commits.files.type "Change"]</a>[end]
[is commits.files.type "Remove"]</del>[end]
</td>
<td style="vertical-align: top;">
[if-any commits.files.date][commits.files.date][else]&nbsp;[end]
</td>
<td style="vertical-align: top;">
[if-any commits.files.author][commits.files.author][else]&nbsp;[end]
</td>
</tr>
[end]
[if-any commits.limited_files]
<tr class="vc_row_[if-index commits even]even[else]odd[end]">
<td>&nbsp;</td>
<td colspan="5">
<strong><em><small>Only first [commits.num_files] files shown.
<a href="[limit_changes_href]">Show all files</a> or
<a href="[queryform_href]">adjust limit</a>.</small></em></strong>
</tr>
[end]
<tr class="vc_row_[if-index commits even]even[else]odd[end]">
<td>&nbsp;</td>
<td colspan="5"><strong>Log:</strong><br />
<pre class="vc_log">[commits.log]</pre></td>
</tr>
</tbody>
[end]
</table>
[end]
[include "include/footer.ezt"]

View File

@ -0,0 +1,81 @@
[# setup page definitions]
[define page_title]Revision [rev] of:[end]
[define help_href][docroot]/help_rootview.html[end]
[# end]
[include "include/header.ezt" "revision"]
<form method="get" action="[jump_rev_action]">
<table cellspacing="1" cellpadding="2" style="width: auto;">
<tr align="left">
<th>Jump to revision:</th>
<td>
[for jump_rev_hidden_values]<input type="hidden" name="[jump_rev_hidden_values.name]" value="[jump_rev_hidden_values.value]"/>[end]
<input type="text" name="revision" value="[rev]" />
<input type="submit" value="Go" />
[if-any prev_href]
<a href="[prev_href]" title="Previous Revision"><img src="[docroot]/images/back.png" alt="Previous" width="20" height="22" /></a>[end]
[if-any next_href] <a href="[next_href]" title="Next Revision"><img src="[docroot]/images/forward.png" width="20" height="22" alt="Next" /></a>[end]
</td>
</tr>
<tr align="left">
<th>Author:</th>
<td>[if-any author][author][else]<em>(unknown author)</em>[end]</td>
</tr>
<tr align="left">
<th>Date:</th>
<td>[if-any date][date][else]<em>(unknown date)</em>[end]
[if-any ago]<em>([ago] ago)</em>[end]</td>
</tr>
<tr align="left">
<th>Log Message:</th>
<td><pre class="vc_log">[log]</pre></td>
</tr>
</table>
</form>
<div id="vc_main_body">
<!-- ************************************************************** -->
[if-any changes]
<h2>Changed paths</h2>
<div class="vc_changedpaths">
[if-any more_changes]
<div>
Only [limit_changes] changes shown,
<a href="[more_changes_href]">display [more_changes] more changes...</a>
</div>
[end]
[if-any first_changes]
<div><a href="[first_changes_href]">Show only first [first_changes] changes...</div>
[end]
<table cellspacing="1" cellpadding="2">
<thead>
<tr align="left">
<th class="vc_header_sort">Path</th>
<th class="vc_header">Details</th>
</tr>
</thead>
<tbody>
[for changes]
<tr class="vc_row_[if-index changes even]even[else]odd[end]">
<td>[if-any changes.view_href]<a href="[changes.view_href]" title="View [is changes.pathtype "dir"]Directory[else]File[end] Contents">[end]<img src="[docroot]/images/[is changes.pathtype "dir"]dir[else]text[end].png" class="vc_icon" alt="Directory" />[changes.path][is changes.pathtype "dir"]/[end][if-any changes.view_href]</a>[end]
[if-any changes.is_copy]<br /><em>(Copied from [changes.copy_path], r[changes.copy_rev])</em>[end]
</td>
<td>[if-any changes.log_href]<a href="[changes.log_href]" title="View Log">[end][changes.action][if-any changes.log_href]</a>[end]
[if-any changes.text_mods], [if-any changes.diff_href]<a href="[changes.diff_href]" title="View Diff">[end]text changed[if-any changes.diff_href]</a>[end][end]
[if-any changes.prop_mods], props changed[end]
</td>
</tr>
[end]
</tbody>
</table>
</div>
[end]
[include "include/props.ezt"]
<!-- ************************************************************** -->
</div>
[include "include/footer.ezt"]

View File

@ -0,0 +1,40 @@
[# setup page definitions]
[define page_title]Repository Listing[end]
[define help_href][docroot]/help_rootview.html[end]
[# end]
[include "include/header.ezt" "directory"]
<div id="vc_main_body">
<!-- ************************************************************** -->
<table cellspacing="1" class="fixed" id="dirlist">
<thead>
<tr>
<th style="width: 200px" class="vc_header_sort">Name</th>
[is cfg.options.show_roots_lastmod "1"]
<th class="vc_header">Last Change</th>
[end]
</tr>
</thead>
<tbody>
[if-any roots]
[for roots]
<tr class="vc_row_[if-index roots even]even[else]odd[end]">
<td onclick="jumpTo('[roots.href]')"><a href="[roots.href]"><img src="[docroot]/images/[roots.type]-logo.png" alt="" class="vc_icon" />[roots.name]</a></td>
[is cfg.options.show_roots_lastmod "1"]
<td>[if-any roots.rev]<strong>[roots.rev]</strong> ([roots.ago] ago)
by <em>[roots.author]</em>: [roots.log][end]</td>
[end]
</tr>
[end]
[end]
</tbody>
</table>
<!-- ************************************************************** -->
</div>
[include "include/footer.ezt"]

17
templates/default/rss.ezt Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<link>[rss_link_href]</link>
<title>[rootname] checkins[if-any where] (in [where])[end]</title>
<description>[is roottype "svn"]Subversion[else]CVS[end] commits to the[if-any where] [where] directory of the[end] [rootname] repository</description>
[for commits]<item>
<title>[if-any commits.rev][commits.rev]: [end][[commits.author]] [commits.short_log]</title>
[if-any commits.rss_url]<link>[commits.rss_url]</link>[end]
<author>[commits.author]</author>
<pubDate>[if-any commits.rss_date][commits.rss_date][else](unknown date)[end]</pubDate>
<description>&lt;pre&gt;[format "xml"][commits.log][end]&lt;/pre&gt;</description>
</item>[end]
</channel>
</rss>