You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Martin Furter <mf...@rola.ch> on 2006/04/17 01:10:04 UTC
Re: [PATCH] www/tools+contrib.html (V2)
On Sat, 15 Apr 2006, Daniel Rall wrote:
> On Sat, 15 Apr 2006, Martin Furter wrote:
>
>>
>> Hello
>>
>> I wrote a new html file containing an index of the scripts in tools/ and
>> contrib/. Only for 3 scripts i didn't find out how to describe them.
>>
>> Now where should I add a link to this new page?
>>
>> Any objections to commit it, or suggestions before I commit?
>>
>> Martin
>
>> Index: www/tools+contrib.html
>> ===================================================================
>> --- www/tools+contrib.html (revision 0)
>> +++ www/tools+contrib.html (revision 0)
> ...
>
> I'd appreciate it if you used something other than a "+" in the file
> name.
>
> Also, there are some README files in some of the directories
> (e.g. tools/hook-scripts/README) which would want to be subsumed by
> this document, no? (Also, you can use the descriptions from there if
> you didn't already.)
Thanks for the rreminder, I updated some descriptions with those I found
in the READMEs. Most of the descriptions I copied from the scripts, for
some I had to lookup the log message.
But still three remain undocumented: whatis-rep.py and svn-dev.el seem to
not have a description and I am not sure what they do. svn_update.pl has a
description but I don't understand it fully.
I also added an index, and tried to format it a bit better, hope you like
it.
Is it possible to add a link to the navigation menu, maybe below
"Documents & Files" ? That way users will find it pretty fast.
Martin
Re: [PATCH] www/tools+contrib.html (V3)
Posted by Martin Furter <mf...@rola.ch>.
On Mon, 17 Apr 2006, Daniel Rall wrote:
> Thanks Martin, comments inline (all the way to the bottom).
>
> On Mon, 17 Apr 2006, Martin Furter wrote:
>
>> On Sat, 15 Apr 2006, Daniel Rall wrote:
>>
>>> On Sat, 15 Apr 2006, Martin Furter wrote:
>>>
>>>>
>>>> Hello
>>>>
>>>> I wrote a new html file containing an index of the scripts in tools/ and
>>>> contrib/. Only for 3 scripts i didn't find out how to describe them.
>>>>
>>>> Now where should I add a link to this new page?
>
> The READMEs could point to the new page.
Done.
>>>> Index: www/tools+contrib.html
>>> ...
>>>
>>> I'd appreciate it if you used something other than a "+" in the file
>>> name.
>>>
>>> Also, there are some README files in some of the directories
>>> (e.g. tools/hook-scripts/README) which would want to be subsumed by
>>> this document, no? (Also, you can use the descriptions from there if
>>> you didn't already.)
>>
>> Thanks for the reminder, I updated some descriptions with those I found
>> in the READMEs. Most of the descriptions I copied from the scripts, for
>> some I had to lookup the log message.
>>
>> But still three remain undocumented: whatis-rep.py and svn-dev.el
>> seem to not have a description and I am not sure what they
>> do.
>
> whatis-rep.py prints a description (including data, path, and
> revision) of the specified node reps in a Subversion filesystem (a
> rep-id is the actual data or property value of the node). It walks as
> much of the reps table as necessary to locate the data (e.g. does a
> table scan). (I've added a quick doc string to say as much.)
>
> svn-dev.el says, "Emacs Lisp help for writing Subversion code." This
> is fairly accurate -- it contains some elisp functions which could be
> helpful to employ while working on Subversion.
OK, added those two descriptions.
>> svn_update.pl has a description but I don't understand it fully.
>
> Not absolutely certain, but at first glance it appears to be a way to
> get around timeout from old versions of mod_dav_svn. It references
> issue <http://subversion.tigris.org/issues/show_bug.cgi?id=2048>; Mike
> would probably be able to confirm.
I should have done the research instead of whining...
Now I read the issue and the log message for the fix (was r13383, not
r13381-2 as stated in the issue) and wrote the following description:
<p>Run svn update and force it to produce conflicts for all
files which would be merged using diff3.
</p>
<p>This is a workaround for <a
href="http://subversion.tigris.org/issues/show_bug.cgi?id=2048"
>issue 2048</a> which was fixed in r13383 and released in
svn 1.2.0.
</p>
>> I also added an index, and tried to format it a bit better, hope you
>> like it.
>
> It looks pretty good, but doesn't look like the XHTML will validate.
> Have you run validate.sh on this?
I did now (nice script :) and fixed all the errors.
>> Is it possible to add a link to the navigation menu, maybe below
>> "Documents & Files" ? That way users will find it pretty fast.
>
> This is possible to do by editing www/project_tools.html. What are
> your reasons for preferring a left nav link would be better than
> indirect linkage from "Docs & files" or some other page?
Added a link in project_tools.html, that way people might find it faster.
As discussed on IRC you can later add a link to Docs&Files too.
>> Index: www/tools_contrib.html
>> ===================================================================
>> --- www/tools_contrib.html (revision 0)
>> +++ www/tools_contrib.html (revision 0)
>> @@ -0,0 +1,984 @@
[...]
>> +<p>The directories 'tools' and 'contrib' in the Subversion repository
>> + contain code that works with Subversion but that Subversion doesn't
>> + depend on for normal operations.
>> +<br />The files in 'tools' are maintained collectively by the Subversion
>> + project, and are under the same open source copyright as Subversion itself.
>> +<br />Code in contrib/ is open source, but may have a different license or
>> + copyright holder than Subversion itself. The Subversion project does
>> + not maintain these programs, but merely distributes them for our
>> + users' convenience.
>
> Prefer <p> tag pairs to <br>'s.
Fixed.
>> +<p>
>
> Missing closing </p> tag?
Fixed.
[...]
>> +<!-- template
[...]
>> +-->
>
> Is anyone ever going to find this template way down at the bottom?
> I'd leave it out, or move it.
Removed.
This time with a commit message :)
[[[
Added tools_contrib.html listing almost all scripts in tools and contrib.
Approved by: dlr
* /trunk/www/tools_contrib.html: New file.
* /trunk/www/project_tools.html: Added link to tools_contrib.html.
* /trunk/contrib/README, /trunk/contrib/hook-scripts/README,
/trunk/tools/README, /trunk/tools/hook-scripts/README:
Added reference to tools_contrib.html.
]]]
Re: [PATCH] www/tools+contrib.html (V2)
Posted by Daniel Rall <dl...@collab.net>.
Thanks Martin, comments inline (all the way to the bottom).
On Mon, 17 Apr 2006, Martin Furter wrote:
> On Sat, 15 Apr 2006, Daniel Rall wrote:
>
> >On Sat, 15 Apr 2006, Martin Furter wrote:
> >
> >>
> >>Hello
> >>
> >>I wrote a new html file containing an index of the scripts in tools/ and
> >>contrib/. Only for 3 scripts i didn't find out how to describe them.
> >>
> >>Now where should I add a link to this new page?
The READMEs could point to the new page.
> >>Index: www/tools+contrib.html
> >...
> >
> >I'd appreciate it if you used something other than a "+" in the file
> >name.
> >
> >Also, there are some README files in some of the directories
> >(e.g. tools/hook-scripts/README) which would want to be subsumed by
> >this document, no? (Also, you can use the descriptions from there if
> >you didn't already.)
>
> Thanks for the reminder, I updated some descriptions with those I found
> in the READMEs. Most of the descriptions I copied from the scripts, for
> some I had to lookup the log message.
>
> But still three remain undocumented: whatis-rep.py and svn-dev.el
> seem to not have a description and I am not sure what they
> do.
whatis-rep.py prints a description (including data, path, and
revision) of the specified node reps in a Subversion filesystem (a
rep-id is the actual data or property value of the node). It walks as
much of the reps table as necessary to locate the data (e.g. does a
table scan). (I've added a quick doc string to say as much.)
svn-dev.el says, "Emacs Lisp help for writing Subversion code." This
is fairly accurate -- it contains some elisp functions which could be
helpful to employ while working on Subversion.
> svn_update.pl has a description but I don't understand it fully.
Not absolutely certain, but at first glance it appears to be a way to
get around timeout from old versions of mod_dav_svn. It references
issue <http://subversion.tigris.org/issues/show_bug.cgi?id=2048>; Mike
would probably be able to confirm.
> I also added an index, and tried to format it a bit better, hope you
> like it.
It looks pretty good, but doesn't look like the XHTML will validate.
Have you run validate.sh on this?
> Is it possible to add a link to the navigation menu, maybe below
> "Documents & Files" ? That way users will find it pretty fast.
This is possible to do by editing www/project_tools.html. What are
your reasons for preferring a left nav link would be better than
indirect linkage from "Docs & files" or some other page?
- Dan
> Index: www/tools_contrib.html
> ===================================================================
> --- www/tools_contrib.html (revision 0)
> +++ www/tools_contrib.html (revision 0)
> @@ -0,0 +1,984 @@
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html xmlns="http://www.w3.org/1999/xhtml">
> +<head>
> +<style type="text/css"> /* <![CDATA[ */
> + @import "tigris-branding/css/tigris.css";
> + @import "tigris-branding/css/inst.css";
> + /* ]]> */</style>
> +<link rel="stylesheet" type="text/css" media="print"
> + href="tigris-branding/css/print.css"/>
> +<script type="text/javascript" src="tigris-branding/scripts/tigris.js"></script>
> +<title>TITLE</title>
> +<!--
> +<base href="http://svn.collab.net/repos/svn/trunk/" />
> +-->
> +</head>
> +
> +<body id="bodycol">
> +<div class="app">
> +
> +<h1>Subversion Tools and Contrib</h1>
> +
> +<p>The directories 'tools' and 'contrib' in the Subversion repository
> + contain code that works with Subversion but that Subversion doesn't
> + depend on for normal operations.
> +<br />The files in 'tools' are maintained collectively by the Subversion
> + project, and are under the same open source copyright as Subversion itself.
> +<br />Code in contrib/ is open source, but may have a different license or
> + copyright holder than Subversion itself. The Subversion project does
> + not maintain these programs, but merely distributes them for our
> + users' convenience.
Prefer <p> tag pairs to <br>'s.
> +<p>
Missing closing </p> tag?
> +<p>The code is grouped into the following subdirectories:</p>
> +
> +<ul>
> + <li><a href="#backup">backup</a></li>
> + <li><a href="#bdb">bdb</a></li>
> + <li><a href="#cgi">cgi</a></li>
> + <li><a href="#client_side">client-side</a></li>
> + <li><a href="#dev">dev</a></li>
> + <li><a href="#diff">diff</a></li>
> + <li><a href="#hook_scripts">hook-scripts</a></li>
> + <li><a href="#po">po</a></li>
> + <li><a href="#server_side">server-side</a></li>
> + <li><a href="#xslt">xslt</a></li>
> +</ul>
> +
> +
> +<h2>Index by keyword</h2>
> +
> +<ul>
> + <li><strong>authz</strong><ul>
> + <li><a href="#authz_svn_group_py">authz_svn_group.py</a></li>
> + <li><a href="#svnauthz_validate_c">svnauthz-validate.c</a></li>
> + </ul></li>
> + <li><strong>backup</strong><ul>
> + <li><a href="#hot_backup_py">hot-backup.py</a></li>
> + <li><a href="#backup_recipe_sh">backup-recipe.sh</a></li>
> + <li><a href="#svn_backup_dumps_py">svn-backup-dumps.py</a></li>
> + <li><a href="#svn_fast_backup">svn-fast-backup</a></li>
> + </ul></li>
> + <li><strong>bash</strong><ul>
> + <li><a href="#bash_completion">bash_completion</a></li>
> + </ul></li>
> + <li><strong>bdb</strong><ul>
> + <li><a href="#backup_recipe_sh">backup-recipe.sh</a></li>
> + <li><a href="#erase_all_text_data_py">erase-all-text-data.py</a></li>
> + <li><a href="#hot_backup_py">hot-backup.py</a></li>
> + <li><a href="#svn_bdb_view_py">svn-bdb-view.py</a></li>
> + <li><a href="#svn_obliterate_py">svn-obliterate.py</a></li>
> + <li><a href="#whatis_rep_py">whatis-rep.py</a></li>
> + </ul></li>
> + <li><strong>branch / tag</strong><ul>
> + <li><a href="#svncopy_pl">svncopy.pl</a></li>
> + </ul></li>
> + <li><strong>cgi</strong><ul>
> + <li><a href="#mirror_dir_through_svn_cgi">mirror_dir_through_svn.cgi</a></li>
> + <li><a href="#tweak_log_cgi">tweak-log.cgi</a></li>
> + </ul></li>
> + <li><strong>commandline tools</strong><ul>
> + <li><a href="#asvn">asvn</a></li>
> + <li><a href="#mucc_c">mucc.c</a></li>
> + <li><a href="#server_vsn_py">server-vsn.py</a></li>
> + <li><a href="#svn_update_pl">svn_update.pl</a></li>
> + </ul></li>
> + <li><strong>diff</strong><ul>
> + <li><a href="#diff3wrap_bat">diff3wrap.bat</a></li>
> + <li><a href="#diffwrap_bat">diffwrap.bat</a></li>
> + <li><a href="#diff_to_logmsg_vim">diff-to-logmsg.vim</a></li>
> + <li><a href="#showchange_pl">showchange.pl</a></li>
> + <li><a href="#svn2cl_sh">svn2cl.sh</a></li>
> + <li><a href="#svn_all_diffs_pl">svn_all_diffs.pl</a></li>
> + <li><a href="#diff_c">diff.c</a></li>
> + <li><a href="#diff3_c">diff3.c</a></li>
> + <li><a href="#diff4_c">diff4.c</a></li>
> + </ul></li>
> + <li><strong>fsfs</strong><ul>
> + <li><a href="#svn_fast_backup">svn-fast-backup</a></li>
> + </ul></li>
> + <li><strong>graph</strong><ul>
> + <li><a href="#svn_graph_pl">svn-graph.pl</a></li>
> + </ul></li>
> + <li><strong>import</strong><ul>
> + <li><a href="#svn_load_dirs_pl">svn_load_dirs.pl</a></li>
> + </ul></li>
> + <li><strong>log message</strong><ul>
> + <li><a href="#diff_to_logmsg_vim">diff-to-logmsg.vim</a></li>
> + <li><a href="#showchange_pl">showchange.pl</a></li>
> + <li><a href="#svn_log_pl">svn-log.pl</a></li>
> + <li><a href="#svn2cl_sh">svn2cl.sh</a></li>
> + <li><a href="#svn2rss_py">svn2rss.py</a></li>
> + </ul></li>
> + <li><strong>merge</strong><ul>
> + <li><a href="#svnmerge_py">svnmerge.py</a></li>
> + <li><a href="#svnmerge_sh">svnmerge.sh</a></li>
> + </ul></li>
> + <li><strong>mirror</strong><ul>
> + <li><a href="#mirror_dir_through_svn_cgi">mirror_dir_through_svn.cgi</a></li>
> + <li><a href="#svn_push_c">svn-push.c</a></li>
> + <li><a href="#svnmirror_sh">svnmirror.sh</a></li>
> + </ul></li>
> + <li><strong>.po files</strong><ul>
> + <li><a href="#verify_po_py">verify-po.py</a></li>
> + <li><a href="#svn_po_status_report_sh">svn-po-status-report.sh</a></li>
> + <li><a href="#svn_po_status_run_sh">svn-po-status-run.sh</a></li>
> + </ul></li>
> + <li><strong>post-commit - email</strong><ul>
> + <li><a href="#commit_email_pl">commit-email.pl</a></li>
> + <li><a href="#commit_email_rb">commit-email.rb</a></li>
> + <li><a href="#mailer_py">mailer.py</a></li>
> + </ul></li>
> + <li><strong>pre-commit - check</strong><ul>
> + <li><a href="#case_insensitive_py">case-insensitive.py</a></li>
> + <li><a href="#check_case_insensitive_py">check-case-insensitive.py</a></li>
> + <li><a href="#check_mime_type_pl">check-mime-type.pl</a></li>
> + <li><a href="#commit_access_control_pl">commit-access-control.pl</a></li>
> + <li><a href="#commit_block_joke_py">commit-block-joke.py</a></li>
> + <li><a href="#detect_merge_conflicts_sh">detect-merge-conflicts.sh</a></li>
> + <li><a href="#enforcer">enforcer</a></li>
> + <li><a href="#log_police_py">log-police.py</a></li>
> + <li><a href="#pre_commit_check_py">pre-commit-check.py</a></li>
> + <li><a href="#svnperms_py">svnperms.py</a></li>
> + <li><a href="#verify_po_py">verify-po.py</a></li>
> + </ul></li>
> + <li><strong>pre-lock - check</strong><ul>
> + <li><a href="#pre_lock_require_needs_lock_py">pre-lock-require-needs-lock.py</a></li>
> + </ul></li>
> + <li><strong>property</strong><ul>
> + <li><a href="#svn_apply_autoprops_py">svn_apply_autoprops.py</a></li>
> + </ul></li>
> + <li><strong>searching</strong><ul>
> + <li><a href="#svn_export_empty_files_py">svn_export_empty_files.py</a></li>
> + <li><a href="#wcgrep">wcgrep</a></li>
> + </ul></li>
> + <li><strong>vim</strong><ul>
> + <li><a href="#diff_to_logmsg_vim">diff-to-logmsg.vim</a></li>
> + <li><a href="#svn_vim">svn.vim</a></li>
> + </ul></li>
> + <li><strong>working copy</strong><ul>
> + <li><a href="#svn_clean">svn-clean</a></li>
> + <li><a href="#svn_resolve">svn-resolve</a></li>
> + <li><a href="#svn_viewdiff">svn-viewdiff</a></li>
> + <li><a href="#svn_apply_autoprops_py">svn_apply_autoprops.py</a></li>
> + <li><a href="#wcgrep">wcgrep</a></li>
> + </ul></li>
> + <li><strong>xslt</strong><ul>
> + <li><a href="#svnindex_xsl">svnindex.xsl</a></li>
> + </ul></li>
> + <li><strong>subversion development tools</strong><ul>
> + <li><a href="#check_license_py">check-license.py</a></li>
> + <li><a href="#contribulyze_py">contribulyze.py</a></li>
> + <li><a href="#datecheck_py">datecheck.py</a></li>
> + <li><a href="#gcov_patch">gcov.patch</a></li>
> + <li><a href="#getsigs_pl">getsigs.pl</a></li>
> + <li><a href="#gnuify_changelog_pl">gnuify-changelog.pl</a></li>
> + <li><a href="#graph_dav_servers_py">graph-dav-servers.py</a></li>
> + <li><a href="#ff2csv_py">ff2csv.py</a></li>
> + <li><a href="#find_fix_py">find-fix.py</a></li>
> + <li><a href="#run_queries_sh">run-queries.sh</a></li>
> + <li><a href="#lock_check_py">lock-check.py</a></li>
> + <li><a href="#mlpatch_py">mlpatch.py</a></li>
> + <li><a href="#normalize_dump_py">normalize-dump.py</a></li>
> + <li><a href="#po_merge_py">po-merge.py</a></li>
> + <li><a href="#prebuild_cleanup_sh">prebuild-cleanup.sh</a></li>
> + <li><a href="#random_commits_py">random-commits.py</a></li>
> + <li><a href="#scramble_tree_py">scramble-tree.py</a></li>
> + <li><a href="#stress_pl">stress.pl</a></li>
> + <li><a href="#svn_dev_el">svn-dev.el</a></li>
> + <li><a href="#svn_dev_vim">svn-dev.vim</a></li>
> + <li><a href="#svn_merge_revs_py">svn-merge-revs.py</a></li>
> + <li><a href="#trails_py">trails.py</a></li>
> + <li><a href="#verify_history_py">verify-history.py</a></li>
> + <li><a href="#warn_ignored_err_sh">warn-ignored-err.sh</a></li>
> + <li><a href="#which_error_py">which-error.py</a></li>
> + </ul></li>
> +</ul>
> +
> +<div class="h2">
> + <h2><a name="backup">backup</a></h2>
> +
> +
> + <h3><a name="hot_backup_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/backup/hot-backup.py.in">hot-backup.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/backup">tools/backup</a>)</a></h3>
> + <p>Perform a "hot" backup of a Berkeley DB repository.
> + (and clean old logfiles after backup completes.)
> + </p>
> +</div>
> +
> +<div class="h2">
> + <h2><a name="bdb">bdb</a></h2>
> +
> +
> + <h3><a name="erase_all_text_data_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/bdb/erase-all-text-data.py">erase-all-text-data.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/bdb">tools/bdb</a>)</a></h3>
> + <p>Erases the text of every file in a BDB repository.</p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/bdb/skel.py">skel.py</a>
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/bdb/svnfs.py">svnfs.py</a>
> + </p>
> +
> +
> + <h3><a name="svn_bdb_view_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/bdb/svn-bdb-view.py">svn-bdb-view.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/bdb">tools/bdb</a>)</a></h3>
> + <p>A pretty-printer for subversion BDB repository databases.</p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/bdb/skel.py">skel.py</a>
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/bdb/svnfs.py">svnfs.py</a>
> + </p>
> +
> +
> + <h3><a name="whatis_rep_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/bdb/whatis-rep.py">whatis-rep.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/bdb">tools/bdb</a>)</a></h3>
> + <p>TODO: Describe whatis-rep.py here.</p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/bdb/skel.py">skel.py</a>
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/bdb/svnfs.py">svnfs.py</a>
> + </p>
> +</div>
> +
> +
> +<div class="h2">
> + <h2><a name="cgi">cgi</a></h2>
> +
> +
> + <h3><a name="mirror_dir_through_svn_cgi"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/cgi/mirror_dir_through_svn.cgi">mirror_dir_through_svn.cgi</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/cgi">contrib/cgi</a>)</a></h3>
> + <p>This CGI script mirrors a source directory to a target directory using
> + a Subversion repository as an intermediary. It's written as a CGI
> + script so that remote users making changes to a WebDAV folder can tell
> + the server to mirror the WebDAV folder contents to another directory
> + on the system. See the example usage story below.
> + </p>
> + <p>See also <a href="http://svn.collab.net/repos/svn/trunk/contrib/cgi/mirror_dir_through_svn.README">mirror_dir_through_svn.README</a></p>
> +
> +
> + <h3><a name="tweak_log_cgi"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/cgi/tweak-log.cgi">tweak-log.cgi</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/cgi">contrib/cgi</a>)</a></h3>
> + <p>It sure would be nice to be able to change the log messages on
> + committed revisions of the Subversion repository via the web. This
> + is a quick attempt at making that happen.
> + </p>
> +</div>
> +
> +
> +<div class="h2">
> + <h2><a name="client_side">client-side</a></h2>
> +
> +
> + <h3><a name="asvn"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/asvn">asvn</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Archive SVN (asvn) will allow the recording of file types not
> + normally handled by svn. Currently this includes devices,
> + symlinks and file ownership/permissions.
> + </p>
> +
> +
> + <h3><a name="bash_completion"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/client-side/bash_completion">bash_completion</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/client-side">tools/client-side</a>)</a></h3>
> + <p>Programmable completion for the Subversion svn command under bash.</p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/client-side/bash_completion_test">bash_completion_test</a>
> + </p>
> +
> +
> + <h3><a name="diff_to_logmsg_vim"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/diff-to-logmsg.vim">diff-to-logmsg.vim</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Converts a 'diff -urp' to a log message skeleton.</p>
> +
> +
> + <h3><a name="diff3wrap_bat"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/diff3wrap.bat">diff3wrap.bat</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Wrapper for running a diff3/merge program.</p>
> +
> +
> + <h3><a name="diffwrap_bat"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/diffwrap.bat">diffwrap.bat</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Wrapper for running a diff program.</p>
> +
> +
> + <h3><a name="mucc_c"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/mucc.c">mucc.c</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Multiple URL Command Client: Combine a list of mv, cp and rm commands
> + on URLs into a single commit.
> + </p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/mucc-test.sh">mucc-test.sh</a>
> + </p>
> +
> +
> + <h3><a name="search_svnlog_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/search-svnlog.pl">search-svnlog.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Show log messages matching a certain pattern.</p>
> +
> +
> + <h3><a name="server_vsn_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/client-side/server-vsn.py">server-vsn.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/client-side">tools/client-side</a>)</a></h3>
> + <p>Print a Subversion server's version number.</p>
> +
> +
> + <h3><a name="showchange_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/client-side/showchange.pl">showchange.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/client-side">tools/client-side</a>)</a></h3>
> + <p>Show the log message and diff for a revision.</p>
> +
> +
> + <h3><a name="svn_clean"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn-clean">svn-clean</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Wipes out unversioned files from SVN working copy.</p>
> +
> +
> + <h3><a name="svn_graph_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/client-side/svn-graph.pl">svn-graph.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/client-side">tools/client-side</a>)</a></h3>
> + <p>Produce a GraphViz .dot graph for the branch history of a node.</p>
> +
> +
> + <h3><a name="svn_log_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn-log.pl">svn-log.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Generate a nice log format for the Subversion repository.</p>
> +
> +
> + <h3><a name="svn_push_c"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn-push/svn-push.c">svn-push.c</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn-push">contrib/client-side/svn-push</a>)</a></h3>
> + <p>Propagate changesets from one (networked) repository to a different
> + (networked) repository.
> + </p>
> +
> +
> + <h3><a name="svn_resolve"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn-resolve">svn-resolve</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Resolve Subversion conflicts using FileMerge.
> + <br />(FileMerge is a graphical diff tool in the Mac OS X
> + Developer Tools.)
> + </p>
> +
> +
> + <h3><a name="svn_viewdiff"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn-viewdiff">svn-viewdiff</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>GNU diff wrapper for FileMerge.
> + <br />(FileMerge is a graphical diff tool in the Mac OS X
> + Developer Tools.)
> + </p>
> +
> +
> + <h3><a name="svn_vim"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn.vim">svn.vim</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Vim syntax hilighting for SVN commit log message template.</p>
> +
> +
> + <h3><a name="svn2cl_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn2cl/svn2cl.sh">svn2cl.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn2cl">contrib/client-side/svn2cl</a>)</a></h3>
> + <p>Front end shell script for svn2cl.xsl, calls xsltproc with the
> + correct parameters.
> + </p>
> + <p>See also <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn2cl/README">README</a>.</p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn2cl/svn2cl.1">svn2cl.1</a>
> + <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn2cl/svn2cl.xsl">svn2cl.xsl</a>
> + <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn2cl/svn2html.css">svn2html.css</a>
> + <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn2cl/svn2html.xsl">svn2html.xsl</a>
> + </p>
> +
> +
> + <h3><a name="svn_all_diffs_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_all_diffs.pl">svn_all_diffs.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Perl script that gets the revisions that modified a specified
> + file or directory and prints the output of `svn diff' on between
> + all revisions that that modified the file or directory. Good for
> + seeing what changed over time and for tracking down when a
> + particular line in a file changed.
> + </p>
> +
> +
> + <h3><a name="svn_apply_autoprops_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_apply_autoprops.py">svn_apply_autoprops.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>This script reads the auto-properties defined in the
> + $HOME/.subversion/config file and applies them recursively to all
> + the files and directories in the current working copy.
> + </p>
> +
> +
> + <h3><a name="svn_export_empty_files_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_export_empty_files.py">svn_export_empty_files.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Script to "export" from a Subversion repository a clean directory
> + tree of empty files instead of the content contained in those
> + files in the repository. The directory tree will also omit the
> + .svn directories. This script was written to create a non-working
> + working copy that can be crawled with find or find's locate utility
> + to make it easier to find files.
> + </p>
> +
> +
> + <h3><a name="svn_load_dirs_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_load_dirs.pl.in">svn_load_dirs.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>This Perl script is designed to load a number of directories into
> + Subversion. This is useful if you have a number of .zip's or
> + tar.{Z,gz,bz2}'s for a particular package and want to load them into
> + Subversion.
> + </p>
> + <p>See also <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_load_dirs.README">svn_load_dirs.README</a>.</p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_load_dirs_property_table.example">svn_load_dirs_property_table.example</a>
> + </p>
> +
> +
> + <h3><a name="svn_update_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_update.pl">svn_update.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>TODO: Describe svn_update.pl here.</p>
> +
> +
> + <h3><a name="svncopy_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svncopy.pl.in">svncopy.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Utility script for copying with branching/tagging.</p>
> + <p>See also <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svncopy.README">svncopy.README</a>.</p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/testsvncopy.pl.in">testsvncopy.pl</a>
> + </p>
> +
> +
> + <h3><a name="svnmerge_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge.py">svnmerge.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Merge tracking script.</p>
> + <p>See also <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge.README">svnmerge.README</a>.</p>
> +
> +
> + <h3><a name="svnmerge_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge.sh">svnmerge.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Merge tracking script, predecessor of svnmerge.py.</p>
> +
> +
> + <h3><a name="wcgrep"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/wcgrep">wcgrep</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side</a>)</a></h3>
> + <p>Useful for greping in a subversion working copy.
> + Essentially it behaves the same way your grep command does.
> + </p>
> +</div>
> +
> +
> +<div class="h2">
> + <h2><a name="dev">dev</a></h2>
> +
> +
> + <h3><a name="check_license_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/check-license.py">check-license.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Check if a file has the proper license in it.</p>
> +
> +
> + <h3><a name="contribulyze_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/contribulyze.py">contribulyze.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Some Subversion project log messages include parseable data to help
> + track who's contributing what. This script collects that data.
> + </p>
> +
> +
> + <h3><a name="datecheck_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/datecheck.py">datecheck.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>This is a debugging script to test date-ordering in an SVN repository.</p>
> +
> +
> + <h3><a name="gcov_patch"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/gcov.patch">gcov.patch</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>This patch can be used to generate a report showing what C source
> + lines are executed when the testsuite is run.
> + </p>
> +
> +
> + <h3><a name="getsigs_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/getsigs.pl">getsigs.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Terribly ugly hack of a script to verify the signatures on the release
> + tarballs and produce the list of who signed them in the format we use for
> + the announcements.
> + </p>
> +
> +
> + <h3><a name="gnuify_changelog_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/gnuify-changelog.pl">gnuify-changelog.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>A script to munge the output of 'svn log' into something approaching the
> + style of a GNU ChangeLog.
> + </p>
> +
> +
> + <h3><a name="graph_dav_servers_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/graph-dav-servers.py">graph-dav-servers.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>This was originally a quick hack to make a pretty picture of svn
> + DAV servers.
> + </p>
> +
> +
> + <h3><a name="ff2csv_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/iz/ff2csv.py">ff2csv.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev/iz">tools/dev/iz</a>)</a></h3>
> + <p>Transform find-fix.py output into Excellable csv.</p>
> +
> +
> + <h3><a name="find_fix_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/iz/find-fix.py">find-fix.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev/iz">tools/dev/iz</a>)</a></h3>
> + <p>Produce a find/fix report for Subversion's IZ database.</p>
> +
> +
> + <h3><a name="run_queries_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/iz/run-queries.sh">run-queries.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev/iz">tools/dev/iz</a>)</a></h3>
> + <p>Run some IssueZilla queries.</p>
> +
> +
> + <h3><a name="lock_check_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/lock-check.py">lock-check.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Repository lock checker. Gets and exclusive lock on the provided
> + repository, then runs db_stat to see if the lock counts have been
> + reset to 0. If not, prints the timestamp of the run and a message
> + about accumulation.
> + </p>
> +
> +
> + <h3><a name="mlpatch_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/mlpatch.py">mlpatch.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Very annoyingly, the http://svn.haxx.se/ subversion mailing list archives
> + mangle inline patches, and provide no raw message download facility
> + (other than for an entire month's email as an mbox).
> + So, I wrote this script, to demangle them. It's not perfect, as it has to
> + guess about whitespace, but it does an acceptable job.
> + </p>
> +
> +
> + <h3><a name="normalize_dump_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/normalize-dump.py">normalize-dump.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Reads a Subversion dumpfile from DUMPFILE (or, if not provided,
> + from stdin) and normalizes the metadata contained therein,
> + printing summarized and sorted information. This is useful for
> + generating data about dumpfiles in a diffable fashion.
> + </p>
> +
> +
> + <h3><a name="po_merge_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/po-merge.py">po-merge.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Read a single translation entry from the file F and return a
> + tuple with the comments, msgid and msgstr. The comments is returned
> + as a list of lines which do not end in new-lines. The msgid and
> + msgstr are strings, possibly with embedded newlines.
> + </p>
> +
> +
> + <h3><a name="prebuild_cleanup_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/prebuild-cleanup.sh">prebuild-cleanup.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Purify a system, to simulate building Subversion on a "clean" box.</p>
> +
> +
> + <h3><a name="random_commits_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/random-commits.py">random-commits.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Using the FILELIST (see config below), a series of COUNT commits will be
> + constructed, each changing up to MAXFILES files per commit. The commands
> + will be sent to stdout (formatted as a shell script).
> + </p>
> +
> +
> + <h3><a name="scramble_tree_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/scramble-tree.py">scramble-tree.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Makes multiple random file changes to a directory tree, for testing.</p>
> +
> +
> + <h3><a name="stress_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/stress.pl">stress.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>A script that allows some simple testing of Subversion, in
> + particular concurrent read, write and read-write access by the 'svn'
> + client. It can also create working copy trees containing a large
> + number of files and directories. All repository access is via the
> + 'svnadmin' and 'svn' commands.
> + </p>
> +
> +
> + <h3><a name="svn_dev_el"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/svn-dev.el">svn-dev.el</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>TODO: Describe svn-dev.el here.</p>
> +
> +
> + <h3><a name="svn_dev_vim"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/svn-dev.vim">svn-dev.vim</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>This file sets vim up to use subversion's coding style. It can be
> + applied on a per buffer basis with :source svn-dev.vim, or can be
> + source from ~/.vimrc to apply settings to all files vim uses. For
> + other variation try :help autocmd.
> + </p>
> +
> +
> + <h3><a name="svn_merge_revs_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/svn-merge-revs.py">svn-merge-revs.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>This script is meant to ease the pain of merging and
> + reviewing revision(s) on a release branch (although it can be used to
> + merge and review revisions from any line of development to another).
> + </p>
> +
> +
> + <h3><a name="trails_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/trails.py">trails.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>A program for analyzing Subversion trail usage statistics.</p>
> +
> +
> + <h3><a name="verify_history_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/verify-history.py">verify-history.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>This program is used to verify the FS history code.</p>
> +
> +
> + <h3><a name="warn_ignored_err_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/warn-ignored-err.sh">warn-ignored-err.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Insert or remove the GCC attribute "warn_unused_result" on each function
> + that returns a Subversion error, in the specified files or, by default,
> + *.h and *.c in the ./subversion and ./tools trees.
> + </p>
> +
> +
> + <h3><a name="which_error_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/which-error.py">which-error.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/dev">tools/dev</a>)</a></h3>
> + <p>Print semantic Subversion error code names mapped from their numeric
> + error code values.
> + </p>
> +</div>
> +
> +
> +<div class="h2">
> + <h2><a name="diff">diff</a></h2>
> +
> +
> + <h3><a name="diff_c"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/diff/diff.c">diff.c</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/diff">tools/diff</a>)</a></h3>
> + <p>A diff program using subversions diff functions.</p>
> +
> +
> + <h3><a name="diff3_c"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/diff/diff3.c">diff3.c</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/diff">tools/diff</a>)</a></h3>
> + <p>A diff3 program using subversions diff functions.</p>
> +
> +
> + <h3><a name="diff4_c"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/diff/diff4.c">diff4.c</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/diff">tools/diff</a>)</a></h3>
> + <p>A diff4 program using subversions diff functions.</p>
> +</div>
> +
> +
> +<div class="h2">
> + <h2><a name="hook_scripts">hook-scripts</a></h2>
> +
> +
> + <h3><a name="case_insensitive_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/case-insensitive.py">case-insensitive.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</a></h3>
> + <p>A pre-commit hook to detect case-insensitive filename clashes.
> + <br />This is *much* more efficient than
> + <a href="#check_case_insensitive_py">check-case-insensitive.py</a>
> + but it does require Subversion 1.3.0 or later.
> + </p>
> +
> +
> + <h3><a name="check_case_insensitive_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/check-case-insensitive.py">check-case-insensitive.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</a></h3>
> + <p>This script can be called from a pre-commit hook on either Windows
> + or a Unix like operating system. It implements the checks required
> + to ensure that the repository acts in a way which is compatible with
> + a case preserving but case insensitive file system.
> + <br />Superceded by <a href="#case_insensitive_py">case-insensitive.py</a>
> + for Subversion 1.3.0 and later.
> + </p>
> +
> +
> + <h3><a name="check_mime_type_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/check-mime-type.pl">check-mime-type.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</a></h3>
> + <p>Check that every added file has the svn:mime-type property set
> + and every added file with a mime-type matching text/* also has
> + svn:eol-style set. If any file fails this test the user is sent
> + a verbose error message suggesting solutions and the commit is
> + aborted.
> + </p>
> +
> +
> + <h3><a name="commit_access_control_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-access-control.pl.in">commit-access-control.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts">tools/hook-scripts</a>)</a></h3>
> + <p>Uses the `svnlook' program to check if the user who submitted
> + the commit has appropriate rights to perform the commit on all
> + the modified files and directories using the permissions
> + specified in the configuration file.
> + </p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-access-control.cfg.example">commit-access-control.cfg.example</a>
> + </p>
> +
> +
> + <h3><a name="commit_block_joke_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/commit-block-joke.py">commit-block-joke.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</a></h3>
> + <p>A funny pre-commit hook example.</p>
> +
> +
> + <h3><a name="commit_email_pl"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-email.pl.in">commit-email.pl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts">tools/hook-scripts</a>)</a></h3>
> + <p>Send a notification email describing either a commit or a
> + revprop-change action on a Subversion repository.
> + <br />Uses the `svnlook' program to send commit emails. Invoke it
> + from `repository/hooks/post-commit'. Run the script with no
> + arguments for usage.
> + </p>
> +
> +
> + <h3><a name="commit_email_rb"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-email.rb">commit-email.rb</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts">tools/hook-scripts</a>)</a></h3>
> + <p>Uses the Ruby/SWIG client bindings to query the repository about
> + the changes made by a particular revision, and send
> + corresponding change emails. The program takes command-line
> + options for basic setup and to fine-tune its behavior.
> + </p>
> +
> +
> + <h3><a name="detect_merge_conflicts_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/detect-merge-conflicts.sh">detect-merge-conflicts.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</a></h3>
> + <p>A pre-commit hook to detect changes that look like forgotten
> + conflict markers.
> + </p>
> +
> +
> + <h3><a name="enforcer"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/enforcer/enforcer">enforcer</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/enforcer">contrib/hook-scripts/enforcer</a>)</a></h3>
> + <p>This is a pre-commit hook that allows you to more easily specify
> + a variety of rules that govern what may be committed to your
> + repository.
> + </p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/enforcer/enforcer.conf">enforcer.conf</a>
> + </p>
> +
> +
> + <h3><a name="log_police_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/log-police.py">log-police.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts">tools/hook-scripts</a>)</a></h3>
> + <p>Ensures that log messages end with exactly one newline. Can
> + also be run as a standalone script to fix up old revisions.
> + </p>
> +
> +
> + <h3><a name="mailer_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/mailer/mailer.py">mailer.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/mailer">tools/hook-scripts/mailer</a>)</a></h3>
> + <p>Uses the Python/SWIG bindings to directly query the repository
> + about the changes made by a particular revision. The program
> + uses a configuration file for basic setup and to fine-tune where
> + changes are delivered. Compared to
> + <a href="#commit_email_pl">commit-email.pl</a>, the output
> + contains a bit more information about property changes, is
> + smarter with binary files, and it streams its output into the
> + mailer (to avoid in-memory buffering).
> + </p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/tools//hook-scripts/mailer/mailer.conf.example">mailer.conf.example</a>
> + <a href="http://svn.collab.net/repos/svn/trunk/tools//hook-scripts/mailer/tests">tests/</a>
> + </p>
> +
> +
> + <h3><a name="pre_commit_check_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/pre-commit-check.py">pre-commit-check.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</a></h3>
> + <p>A template for checks in a pre-commit hook.</p>
> +
> +
> + <h3><a name="pre_lock_require_needs_lock_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/pre-lock-require-needs-lock.py">pre-lock-require-needs-lock.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</a></h3>
> + <p>This script, intended for use as a Subversion pre-lock hook, verifies that
> + the PATH that USER is attempting to lock has the svn:needs-lock property
> + set on it, returning success iff it does.
> + </p>
> +
> +
> + <h3><a name="svn2rss_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/svn2rss.py">svn2rss.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</a></h3>
> + <p>Generates a RSS 2.0 file containing commit information.</p>
> +
> +
> + <h3><a name="svnperms_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/svnperms.py">svnperms.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts">tools/hook-scripts</a>)</a></h3>
> + <p>Pre-commit hook that checks write permissions, similar to
> + <a href="#commit_access_control_pl">commit-access-control.pl</a>,
> + but uses a different syntax. Run 'svnperms.py -h' for usage.
> + </p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/svnperms.conf.example">svnperms.conf.example</a>
> + </p>
> +
> +
> + <h3><a name="verify_po_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/verify-po.py">verify-po.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts">tools/hook-scripts</a>)</a></h3>
> + <p>This is a pre-commit hook that checks whether the contents of PO files
> + committed to the repository are encoded in UTF-8.
> + </p>
> +</div>
> +
> +
> +<div class="h2">
> + <h2><a name="po">po</a></h2>
> +
> +
> + <h3><a name="svn_po_status_report_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/po/svn-po-status-report.sh">svn-po-status-report.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/po">tools/po</a>)</a></h3>
> + <p>Subversion po file translation status report generator.</p>
> +
> +
> + <h3><a name="svn_po_status_run_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/po/svn-po-status-run.sh">svn-po-status-run.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/po">tools/po</a>)</a></h3>
> + <p>Script for mailing status output from cronjobs.</p>
> +</div>
> +
> +
> +<div class="h2">
> + <h2><a name="server_side">server-side</a></h2>
> +
> +
> + <h3><a name="authz_svn_group_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/server-side/authz_svn_group.py">authz_svn_group.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/server-side">contrib/server-side</a>)</a></h3>
> + <p>mod_python authorization handler for mod_authz_svn groups.</p>
> +
> +
> + <h3><a name="backup_recipe_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/server-side/backup-recipe.sh">backup-recipe.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/server-side">contrib/server-side</a>)</a></h3>
> + <p>This shell script demonstrates a backup/restore recipe for live
> + Subversion repositories, using a standard full+incrementals process.
> + </p>
> +
> +
> + <h3><a name="svn_backup_dumps_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/server-side/svn-backup-dumps.py">svn-backup-dumps.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/server-side">tools/server-side</a>)</a></h3>
> + <p>This script creates (incremental) dump files from a subversion
> + repository on *IX. It is intended for use in cron jobs and
> + post-commit hooks.
> + </p>
> +
> +
> + <h3><a name="svn_fast_backup"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/server-side/svn-fast-backup">svn-fast-backup</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/server-side">contrib/server-side</a>)</a></h3>
> + <p>Use rsync snapshots for very fast FSFS repository backup.</p>
> +
> +
> + <h3><a name="svn_obliterate_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/server-side/svn-obliterate.py">svn-obliterate.py</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/server-side">contrib/server-side</a>)</a></h3>
> + <p>Whitewash the contents of a Subversion file and its successors.</p>
> +
> +
> + <h3><a name="svnauthz_validate_c"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/server-side/svnauthz-validate.c">svnauthz-validate.c</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/server-side">tools/server-side</a>)</a></h3>
> + <p>Load and validate an authz file.</p>
> +
> +
> + <h3><a name="svnmirror_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/server-side/svnmirror.sh">svnmirror.sh</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/contrib/server-side">contrib/server-side</a>)</a></h3>
> + <p>Mirror subversion repositories. This script supports pushing or
> + pulling the changes via ssh and svn tools.
> + </p>
> +</div>
> +
> +
> +<div class="h2">
> + <h2><a name="xslt">xslt</a></h2>
> +
> +
> + <h3><a name="svnindex_xsl"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/xslt/svnindex.xsl">svnindex.xsl</a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/tools/xslt">tools/xslt</a>)</a></h3>
> + <p>A sample XML transformation style sheet for displaying the Subversion
> + directory listing that is generated by mod_dav_svn when the
> + "SVNIndexXSLT" directive is used.
> + </p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/tools/xslt/svnindex.css">svnindex.css</a>
> + </p>
> +</div>
> +
> +<!-- template
> +
> + <h3><a name=""><a
> + href="http://svn.collab.net/repos/svn/trunk/"></a>
> + (<a href="http://svn.collab.net/repos/svn/trunk/"></a>)</a></h3>
> + <p>Description...
> + </p>
> + <p>See also <a href="http://svn.collab.net/repos/svn/trunk/"></a>.</p>
> + <p>Related files:
> + <a href="http://svn.collab.net/repos/svn/trunk/"></a>
> + </p>
> +
> +-->
Is anyone ever going to find this template way down at the bottom?
I'd leave it out, or move it.
> +</div>
> + </body>
> + </html>
>
> Property changes on: www/tools_contrib.html
> ___________________________________________________________________
> Name: svn:mime-type
> + text/html
> Name: svn:eol-style
> + native