[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] www/tools+contrib.html (V2)

From: Daniel Rall <dlr_at_collab.net>
Date: 2006-04-17 18:12:30 CEST

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>backup</li>
> + <li>bdb</li>
> + <li>cgi</li>
> + <li>client-side</li>
> + <li>dev</li>
> + <li>diff</li>
> + <li>hook-scripts</li>
> + <li>po</li>
> + <li>server-side</li>
> + <li>xslt</li>
> +</ul>
> +
> +
> +<h2>Index by keyword</h2>
> +
> +<ul>
> + <li><strong>authz</strong><ul>
> + <li>authz_svn_group.py</li>
> + <li>svnauthz-validate.c</li>
> + </ul></li>
> + <li><strong>backup</strong><ul>
> + <li>hot-backup.py</li>
> + <li>backup-recipe.sh</li>
> + <li>svn-backup-dumps.py</li>
> + <li>svn-fast-backup</li>
> + </ul></li>
> + <li><strong>bash</strong><ul>
> + <li>bash_completion</li>
> + </ul></li>
> + <li><strong>bdb</strong><ul>
> + <li>backup-recipe.sh</li>
> + <li>erase-all-text-data.py</li>
> + <li>hot-backup.py</li>
> + <li>svn-bdb-view.py</li>
> + <li>svn-obliterate.py</li>
> + <li>whatis-rep.py</li>
> + </ul></li>
> + <li><strong>branch / tag</strong><ul>
> + <li>svncopy.pl</li>
> + </ul></li>
> + <li><strong>cgi</strong><ul>
> + <li>mirror_dir_through_svn.cgi</li>
> + <li>tweak-log.cgi</li>
> + </ul></li>
> + <li><strong>commandline tools</strong><ul>
> + <li>asvn</li>
> + <li>mucc.c</li>
> + <li>server-vsn.py</li>
> + <li>svn_update.pl</li>
> + </ul></li>
> + <li><strong>diff</strong><ul>
> + <li>diff3wrap.bat</li>
> + <li>diffwrap.bat</li>
> + <li>diff-to-logmsg.vim</li>
> + <li>showchange.pl</li>
> + <li>svn2cl.sh</li>
> + <li>svn_all_diffs.pl</li>
> + <li>diff.c</li>
> + <li>diff3.c</li>
> + <li>diff4.c</li>
> + </ul></li>
> + <li><strong>fsfs</strong><ul>
> + <li>svn-fast-backup</li>
> + </ul></li>
> + <li><strong>graph</strong><ul>
> + <li>svn-graph.pl</li>
> + </ul></li>
> + <li><strong>import</strong><ul>
> + <li>svn_load_dirs.pl</li>
> + </ul></li>
> + <li><strong>log message</strong><ul>
> + <li>diff-to-logmsg.vim</li>
> + <li>showchange.pl</li>
> + <li>svn-log.pl</li>
> + <li>svn2cl.sh</li>
> + <li>svn2rss.py</li>
> + </ul></li>
> + <li><strong>merge</strong><ul>
> + <li>svnmerge.py</li>
> + <li>svnmerge.sh</li>
> + </ul></li>
> + <li><strong>mirror</strong><ul>
> + <li>mirror_dir_through_svn.cgi</li>
> + <li>svn-push.c</li>
> + <li>svnmirror.sh</li>
> + </ul></li>
> + <li><strong>.po files</strong><ul>
> + <li>verify-po.py</li>
> + <li>svn-po-status-report.sh</li>
> + <li>svn-po-status-run.sh</li>
> + </ul></li>
> + <li><strong>post-commit - email</strong><ul>
> + <li>commit-email.pl</li>
> + <li>commit-email.rb</li>
> + <li>mailer.py</li>
> + </ul></li>
> + <li><strong>pre-commit - check</strong><ul>
> + <li>case-insensitive.py</li>
> + <li>check-case-insensitive.py</li>
> + <li>check-mime-type.pl</li>
> + <li>commit-access-control.pl</li>
> + <li>commit-block-joke.py</li>
> + <li>detect-merge-conflicts.sh</li>
> + <li>enforcer</li>
> + <li>log-police.py</li>
> + <li>pre-commit-check.py</li>
> + <li>svnperms.py</li>
> + <li>verify-po.py</li>
> + </ul></li>
> + <li><strong>pre-lock - check</strong><ul>
> + <li>pre-lock-require-needs-lock.py</li>
> + </ul></li>
> + <li><strong>property</strong><ul>
> + <li>svn_apply_autoprops.py</li>
> + </ul></li>
> + <li><strong>searching</strong><ul>
> + <li>svn_export_empty_files.py</li>
> + <li>wcgrep</li>
> + </ul></li>
> + <li><strong>vim</strong><ul>
> + <li>diff-to-logmsg.vim</li>
> + <li>svn.vim</li>
> + </ul></li>
> + <li><strong>working copy</strong><ul>
> + <li>svn-clean</li>
> + <li>svn-resolve</li>
> + <li>svn-viewdiff</li>
> + <li>svn_apply_autoprops.py</li>
> + <li>wcgrep</li>
> + </ul></li>
> + <li><strong>xslt</strong><ul>
> + <li>svnindex.xsl</li>
> + </ul></li>
> + <li><strong>subversion development tools</strong><ul>
> + <li>check-license.py</li>
> + <li>contribulyze.py</li>
> + <li>datecheck.py</li>
> + <li>gcov.patch</li>
> + <li>getsigs.pl</li>
> + <li>gnuify-changelog.pl</li>
> + <li>graph-dav-servers.py</li>
> + <li>ff2csv.py</li>
> + <li>find-fix.py</li>
> + <li>run-queries.sh</li>
> + <li>lock-check.py</li>
> + <li>mlpatch.py</li>
> + <li>normalize-dump.py</li>
> + <li>po-merge.py</li>
> + <li>prebuild-cleanup.sh</li>
> + <li>random-commits.py</li>
> + <li>scramble-tree.py</li>
> + <li>stress.pl</li>
> + <li>svn-dev.el</li>
> + <li>svn-dev.vim</li>
> + <li>svn-merge-revs.py</li>
> + <li>trails.py</li>
> + <li>verify-history.py</li>
> + <li>warn-ignored-err.sh</li>
> + <li>which-error.py</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/bdb/erase-all-text-data.py">erase-all-text-data.py</a>
> + (tools/bdb)</a></h3>
> + <p>Erases the text of every file in a BDB repository.</p>
> + <p>Related files:
> + skel.py
> + svnfs.py
> + </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>
> + (tools/bdb)</a></h3>
> + <p>A pretty-printer for subversion BDB repository databases.</p>
> + <p>Related files:
> + skel.py
> + svnfs.py
> + </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>
> + (tools/bdb)</a></h3>
> + <p>TODO: Describe whatis-rep.py here.</p>
> + <p>Related files:
> + skel.py
> + svnfs.py
> + </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>
> + (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 mirror_dir_through_svn.README</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/asvn">asvn</a>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/client-side/bash_completion">bash_completion</a>
> + (tools/client-side)</a></h3>
> + <p>Programmable completion for the Subversion svn command under bash.</p>
> + <p>Related files:
> + bash_completion_test
> + </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>
> + (contrib/client-side)</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>
> + (contrib/client-side)</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>
> + (contrib/client-side)</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>
> + (contrib/client-side)</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:
> + mucc-test.sh
> + </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>
> + (contrib/client-side)</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>
> + (tools/client-side)</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>
> + (tools/client-side)</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>
> + (contrib/client-side)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn-log.pl">svn-log.pl</a>
> + (contrib/client-side)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn-resolve">svn-resolve</a>
> + (contrib/client-side)</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>
> + (contrib/client-side)</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>
> + (contrib/client-side)</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>
> + (contrib/client-side/svn2cl)</a></h3>
> + <p>Front end shell script for svn2cl.xsl, calls xsltproc with the
> + correct parameters.
> + </p>
> + <p>See also README.</p>
> + <p>Related files:
> + svn2cl.1
> + svn2cl.xsl
> + svn2html.css
> + svn2html.xsl
> + </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>
> + (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 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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_export_empty_files.py">svn_export_empty_files.py</a>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_load_dirs.pl.in">svn_load_dirs.pl</a>
> + (contrib/client-side)</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 svn_load_dirs.README.</p>
> + <p>Related files:
> + svn_load_dirs_property_table.example
> + </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>
> + (contrib/client-side)</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>
> + (contrib/client-side)</a></h3>
> + <p>Utility script for copying with branching/tagging.</p>
> + <p>See also svncopy.README.</p>
> + <p>Related files:
> + testsvncopy.pl
> + </p>
> +
> +
> + <h3><a name="svnmerge_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge.py">svnmerge.py</a>
> + (contrib/client-side)</a></h3>
> + <p>Merge tracking script.</p>
> + <p>See also svnmerge.README.</p>
> +
> +
> + <h3><a name="svnmerge_sh"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge.sh">svnmerge.sh</a>
> + (contrib/client-side)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/check-license.py">check-license.py</a>
> + (tools/dev)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/datecheck.py">datecheck.py</a>
> + (tools/dev)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/getsigs.pl">getsigs.pl</a>
> + (tools/dev)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/graph-dav-servers.py">graph-dav-servers.py</a>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/iz/ff2csv.py">ff2csv.py</a>
> + (tools/dev/iz)</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>
> + (tools/dev/iz)</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>
> + (tools/dev/iz)</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>
> + (tools/dev)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/normalize-dump.py">normalize-dump.py</a>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/po-merge.py">po-merge.py</a>
> + (tools/dev)</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>
> + (tools/dev)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/scramble-tree.py">scramble-tree.py</a>
> + (tools/dev)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/svn-dev.el">svn-dev.el</a>
> + (tools/dev)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/svn-merge-revs.py">svn-merge-revs.py</a>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/trails.py">trails.py</a>
> + (tools/dev)</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>
> + (tools/dev)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/dev/which-error.py">which-error.py</a>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/diff/diff.c">diff.c</a>
> + (tools/diff)</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>
> + (tools/diff)</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>
> + (tools/diff)</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>
> + (contrib/hook-scripts)</a></h3>
> + <p>A pre-commit hook to detect case-insensitive filename clashes.
> + <br />This is *much* more efficient than
> + check-case-insensitive.py
> + 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>
> + (contrib/hook-scripts)</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 case-insensitive.py
> + 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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-access-control.pl.in">commit-access-control.pl</a>
> + (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:
> + commit-access-control.cfg.example
> + </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>
> + (contrib/hook-scripts)</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>
> + (tools/hook-scripts)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/detect-merge-conflicts.sh">detect-merge-conflicts.sh</a>
> + (contrib/hook-scripts)</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>
> + (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:
> + enforcer.conf
> + </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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/mailer/mailer.py">mailer.py</a>
> + (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
> + commit-email.pl, 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:
> + mailer.conf.example
> + tests/
> + </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>
> + (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"><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>
> + (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="svn2rss_py"><a
> + href="http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/svn2rss.py">svn2rss.py</a>
> + (contrib/hook-scripts)</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>
> + (tools/hook-scripts)</a></h3>
> + <p>Pre-commit hook that checks write permissions, similar to
> + commit-access-control.pl,
> + but uses a different syntax. Run 'svnperms.py -h' for usage.
> + </p>
> + <p>Related files:
> + svnperms.conf.example
> + </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>
> + (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="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>
> + (tools/po)</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>
> + (tools/po)</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>
> + (contrib/server-side)</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>
> + (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="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>
> + (tools/server-side)</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>
> + (contrib/server-side)</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>
> + (contrib/server-side)</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>
> + (tools/server-side)</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>
> + (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"><a
> + href="http://svn.collab.net/repos/svn/trunk/tools/xslt/svnindex.xsl">svnindex.xsl</a>
> + (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:
> + svnindex.css
> + </p>
> +</div>
> +
> +<!-- template
> +
> + <h3><a name=""><a
> + href="http://svn.collab.net/repos/svn/trunk/"></a>
> + ()</a></h3>
> + <p>Description...
> + </p>
> + <p>See also .</p>
> + <p>Related files:
> +
> + </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

  • application/pgp-signature attachment: stored
Received on Mon Apr 17 18:13:25 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.