tools_contrib.html [plain text]
<!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 "branding/css/tigris.css";
@import "branding/css/inst.css";
/* ]]> */</style>
<link rel="stylesheet" type="text/css" media="print"
href="branding/css/print.css"/>
<script type="text/javascript" src="branding/scripts/tigris.js"></script>
<title>Subversion Tools and Contrib</title>
</head>
<body>
<div class="app">
<h1>Subversion Tools and Contrib</h1>
<p>Translations: <a href="tools_contrib.zh.html">简体中文</a></p>
<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.
</p>
<p>The files in 'tools' are maintained collectively by the Subversion
project, and are under the same open source copyright as Subversion itself.
</p>
<p>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.
</p>
<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>apache</strong><ul>
<li><a href="#mod_dontdothat_c">mod_dontdothat.c</a></li>
</ul></li>
<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="#backup_recipe_sh">backup-recipe.sh</a></li>
<li><a href="#hot_backup_py">hot-backup.py</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="#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="#svnmucc_c">svnmucc.c</a></li>
<li><a href="#server_version_py">server-version.py</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="#diff_c">diff.c</a></li>
<li><a href="#diff3_c">diff3.c</a></li>
<li><a href="#diff4_c">diff4.c</a></li>
<li><a href="#diff_to_logmsg_vim">diff-to-logmsg.vim</a></li>
<li><a href="#diffwrap_bat">diffwrap.bat</a></li>
<li><a href="#diff3wrap_bat">diff3wrap.bat</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>
</ul></li>
<li><strong>emacs</strong><ul>
<li><a href="#dsvn_el">dsvn.el</a></li>
<li><a href="#psvn_el">psvn.el</a></li>
<li><a href="#vc_svn_el">vc-svn.el</a></li>
</ul></li>
<li><strong>fsfs</strong><ul>
<li><a href="#svn_fast_backup">svn-fast-backup</a></li>
<li><a href="#fsfs_reshard_py">fsfs-reshard.py</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="#svn2feed_py">svn2feed.py</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="#l10n_report">l10n-report.py</a></li>
<li><a href="#verify_po_py">verify-po.py</a></li>
<li><a href="#po_update_sh">po-update.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_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_apply_autoprops_py">svn_apply_autoprops.py</a></li>
<li><a href="#svn_clean">svn-clean</a></li>
<li><a href="#svn_resolve">svn-resolve</a></li>
<li><a href="#svn_update_pl">svn_update.pl</a></li>
<li><a href="#svn_viewdiff">svn-viewdiff</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"
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>)</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"
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>)</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"
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>)</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"
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>)</h3>
<p>Print a description (including data, path, and revision) of the
specified node reps in a Subversion filesystem. Walks as much of
the reps table as necessary to locate the data (e.g. does a table
scan).
</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"
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>)</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"
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>)</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"
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>)</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"
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>)</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"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/vim/diff-to-logmsg.vim">diff-to-logmsg.vim</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/vim">contrib/client-side/vim</a>)</h3>
<p>Converts a 'diff -urp' to a log message skeleton.</p>
<h3><a name="diff3wrap_bat"
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>)</h3>
<p>Wrapper for running a diff3/merge program.</p>
<h3><a name="diffwrap_bat"
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>)</h3>
<p>Wrapper for running a diff program.</p>
<h3><a name="dsvn_el"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/dsvn.el">dsvn.el</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/dsvn.el">contrib/client-side/emacs/dsvn.el</a>)</h3>
<p>A Subversion interface for Emacs, providing a similar interface as
pcl-cvs for CVS.
</p>
<p>See also <a href="#psvn_el">psvn.el</a>.</p>
<h3><a name="svnmucc_c"
href="http://svn.collab.net/repos/svn/trunk/tools/client-side/svnmucc/svnmucc.c">svnmucc.c</a>
(<a href="http://svn.collab.net/repos/svn/trunk/tools/client-side/svnmucc">tools/client-side/svnmucc</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/tools/client-side/svnmucc/svnmucc-test.py">svnmucc-test.py</a>
</p>
<p>Previous locations: ...<tt>/contrib/client-side/mucc/mucc.c</tt>
for Subversion 1.4 or earlier,
...<tt>/contrib/client-side/svnmucc/svnmucc.c</tt> for Subversion
1.5.
</p>
<h3><a name="psvn_el"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/psvn.el">psvn.el</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/psvn.el">contrib/client-side/emacs/psvn.el</a>)</h3>
<p>A Subversion interface for Emacs, providing a similar interface as
pcl-cvs for CVS.
</p>
<p>See also <a href="#dsvn_el">dsvn.el</a>.</p>
<h3><a name="search_svnlog_pl"
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>)</h3>
<p>Show log messages matching a certain pattern.</p>
<h3><a name="server_version_py"
href="http://svn.collab.net/repos/svn/trunk/tools/client-side/server-version.py">server-version.py</a>
(<a href="http://svn.collab.net/repos/svn/trunk/tools/client-side">tools/client-side</a>)</h3>
<p>Print a Subversion server's version number.</p>
<p><a name="server_vsn_py">server-version.py was formerly known as server-vsn.py</a></p>
<h3><a name="showchange_pl"
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>)</h3>
<p>Show the log message and diff for a revision.</p>
<h3><a name="svn_clean"
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>)</h3>
<p>Wipes out unversioned files from SVN working copy.</p>
<h3><a name="svn_graph_pl"
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>)</h3>
<p>Produce a GraphViz .dot graph for the branch history of a node.</p>
<h3><a name="svn_log_pl"
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>)</h3>
<p>Generate a nice log format for the Subversion repository.</p>
<h3><a name="svn_push_c"
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>)</h3>
<p>Propagate changesets from one (networked) repository to a different
(networked) repository.
</p>
<h3><a name="svn_resolve"
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>)</h3>
<p>Resolve Subversion conflicts using FileMerge.
</p>
<p>(FileMerge is a graphical diff tool in the Mac OS X
Developer Tools.)
</p>
<h3><a name="svn_viewdiff"
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>)</h3>
<p>GNU diff wrapper for FileMerge.
</p>
<p>(FileMerge is a graphical diff tool in the Mac OS X
Developer Tools.)
</p>
<h3><a name="svn_vim"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/vim/svn.vim">svn.vim</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/vim">contrib/client-side/vim</a>)</h3>
<p>Vim syntax hilighting for SVN commit log message template.</p>
<h3><a name="svn2cl_sh"
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>)</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"
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>)</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 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"
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>)</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"
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>)</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"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in">svn_load_dirs.pl</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_load_dirs">contrib/client-side/svn_load_dirs</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/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/svn_load_dirs_property_table.example">svn_load_dirs_property_table.example</a>
</p>
<h3><a name="svn_update_pl"
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>)</h3>
<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>
<h3><a name="svncopy_pl"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svncopy/svncopy.pl.in">svncopy.pl</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svncopy">contrib/client-side/svncopy</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/svncopy.README">svncopy.README</a>.</p>
<p>Related files:
<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svncopy/testsvncopy.pl.in">testsvncopy.pl</a>
</p>
<h3><a name="svnmerge_py"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge/svnmerge.py">svnmerge.py</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge">contrib/client-side/svnmerge</a>)</h3>
<p>Merge tracking script.</p>
<p>See also <a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge/svnmerge.README">svnmerge.README</a>.</p>
<h3><a name="svnmerge_sh"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge/svnmerge.sh">svnmerge.sh</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge">contrib/client-side/svnmerge</a>)</h3>
<p>Merge tracking script, predecessor of svnmerge.py.</p>
<h3><a name="vc_svn_el"
href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/vc-svn.el">vc-svn.el</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/client-side">contrib/client-side/emacs</a>)</h3>
<p>A VC backend for Subversion.
</p>
<p>Note that this one included in the Subversion tree is not the master
version. The canonical vc-svn.el now lives in the FSF Emacs tree, at
<a href="http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/vc-svn.el">http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/vc-svn.el</a>.
The version here is maintained only because it is compatible with
older releases of Emacs, since the one in the FSF tree hasn't made it
into an official release of Emacs yet.
</p>
<h3><a name="wcgrep"
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>)</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"
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>)</h3>
<p>Check if a file has the proper license in it.</p>
<h3><a name="contribulyze_py"
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>)</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"
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>)</h3>
<p>This is a debugging script to test date-ordering in an SVN repository.</p>
<h3><a name="gcov_patch"
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>)</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"
href="http://svn.collab.net/repos/svn/trunk/tools/dist/getsigs.pl">getsigs.pl</a>
(<a href="http://svn.collab.net/repos/svn/trunk/tools/dist">tools/dist</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"
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>)</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"
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>)</h3>
<p>This was originally a quick hack to make a pretty picture of svn
DAV servers.
</p>
<h3><a name="ff2csv_py"
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>)</h3>
<p>Transform find-fix.py output into Excellable csv.</p>
<h3><a name="find_fix_py"
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>)</h3>
<p>Produce a find/fix report for Subversion's IZ database.</p>
<h3><a name="run_queries_sh"
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>)</h3>
<p>Run some IssueZilla queries.</p>
<h3><a name="lock_check_py"
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>)</h3>
<p>Repository lock checker. Gets an 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"
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>)</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"
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>)</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"
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>)</h3>
<p>This script will replace the translations and flags in a po file with
the translations and flags in the source po file read from standard
input. Strings that are not found in the source file are left untouched.
</p>
<h3><a name="prebuild_cleanup_sh"
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>)</h3>
<p>Purify a system, to simulate building Subversion on a "clean" box.</p>
<h3><a name="random_commits_py"
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>)</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"
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>)</h3>
<p>Makes multiple random file changes to a directory tree, for testing.</p>
<h3><a name="stress_pl"
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>)</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"
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>)</h3>
<p>Emacs Lisp help for writing Subversion code. This file contains
some elisp functions which could be helpful to employ while working
on Subversion.
</p>
<h3><a name="svn_dev_vim"
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>)</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"
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>)</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"
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>)</h3>
<p>A program for analyzing Subversion trail usage statistics.</p>
<h3><a name="verify_history_py"
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>)</h3>
<p>This program is used to verify the FS history code.</p>
<h3><a name="warn_ignored_err_sh"
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>)</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"
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>)</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"
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>)</h3>
<p>A diff program using Subversion's diff functions.</p>
<h3><a name="diff3_c"
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>)</h3>
<p>A diff3 program using Subversion's diff functions.</p>
<h3><a name="diff4_c"
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>)</h3>
<p>A diff4 program using Subversion's diff functions.</p>
</div>
<div class="h2">
<h2><a name="hook_scripts">hook-scripts</a></h2>
<h3><a name="case_insensitive_py"
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>)</h3>
<p>A pre-commit hook to detect case-insensitive filename clashes.
</p>
<h3><a name="check_mime_type_pl"
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>)</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"
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>)</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"
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>)</h3>
<p>A funny pre-commit hook example.</p>
<h3><a name="commit_email_pl"
href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/commit-email.pl.in">commit-email.pl</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">tools/hook-scripts</a>)</h3>
<p>Send a notification email describing either a commit or a
revprop-change action on a Subversion repository.
</p>
<p>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"
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>)</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"
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>)</h3>
<p>A pre-commit hook to detect changes that look like forgotten
conflict markers.
</p>
<h3><a name="enforcer"
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>)</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"
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>)</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"
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>)</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"
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>)</h3>
<p>A template for checks in a pre-commit hook.</p>
<h3><a name="pre_lock_require_needs_lock_py"
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>)</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="require_mergeinfo_pl"
href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/require-mergeinfo.pl">require-mergeinfo.pl</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts">contrib/hook-scripts</a>)</h3>
<p>This script checks that the committing client supports the 'mergeinfo'
capability. It is intended for use from within a Subversion start-commit
hook.
</p>
<h3><a name="svn2feed_py"
href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/svn2feed.py">svn2feed.py</a>
(<a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts">tools/hook-scripts</a>)</h3>
<p>Generates an RSS 2.0 or Atom 1.0 file containing commit information.</p>
<p><a name="svn2rss_py">svn2feed.py was formerly known as svn2rss.py</a></p>
<h3><a name="svnperms_py"
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>)</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"
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>)</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="l10n_report"
href="http://svn.collab.net/repos/svn/trunk/tools/po/l10n-report.py">l10n-report.py</a>
(<a href="http://svn.collab.net/repos/svn/trunk/tools/po">tools/po</a>)</h3>
<p>Script for generating a report on po file translation status and
mail them to an email id. By default, the report is displayed in the
stdout.</p>
<h3><a name="po_update_sh"
href="http://svn.collab.net/repos/svn/trunk/tools/po/po-update.sh">po-update.sh</a>
(<a href="http://svn.collab.net/repos/svn/trunk/tools/po">tools/po</a>)</h3>
<p>Script to generate Subversion pot files and update locales.</p>
</div>
<div class="h2">
<h2><a name="server_side">server-side</a></h2>
<h3><a name="authz_svn_group_py"
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>)</h3>
<p>mod_python authorization handler for mod_authz_svn groups.</p>
<h3><a name="backup_recipe_sh"
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>)</h3>
<p>This shell script demonstrates a backup/restore recipe for live
Subversion repositories, using a standard full+incrementals process.
</p>
<h3><a name="fsfs_reshard_py"
href="http://svn.collab.net/repos/svn/trunk/tools/server-side/fsfs-reshard.py">fsfs-reshard.py</a>
(<a href="http://svn.collab.net/repos/svn/trunk/tools/server-side">tools/server-side</a>)</h3>
<p>This script performs an offline conversion of an FSFS repository between
the linear format compatible with Subversion 1.4 or later and the sharded
format included with Subversion 1.5.
</p>
<h3><a name="mod_dontdothat_c"
href="http://svn.collab.net/repos/svn/trunk/contrib/server-side/mod_dontdothat/mod_dontdothat.c">mod_dontdothat.c</a>
(<a href="http://svn.collab.net/repos/svn/trunk/contrib/server-side/mod_dontdothat">contrib/server-side/mod_dontdothat</a>)</h3>
<p>An Apache module that allows you to block expensive Subversion requests,
like checkouts of the root of a large repository.
</p>
<p>See also <a href="http://svn.collab.net/repos/svn/trunk/contrib/server-side/mod_dontdothat/README">README</a>.</p>
<h3><a name="svn_backup_dumps_py"
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>)</h3>
<p>This script creates (incremental) dump files from a subversion
repository on *IX and Windows. It is intended for use in cron jobs and
post-commit hooks.
</p>
<h3><a name="svn_fast_backup"
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>)</h3>
<p>Use rsync snapshots for very fast FSFS repository backup.</p>
<h3><a name="svnauthz_validate_c"
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>)</h3>
<p>Load and validate an authz file.</p>
<h3><a name="svnmirror_sh"
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>)</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"
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>)</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>
</div>
</body>
</html>