.\"
.\"
.\"     Licensed to the Apache Software Foundation (ASF) under one
.\"     or more contributor license agreements.  See the NOTICE file
.\"     distributed with this work for additional information
.\"     regarding copyright ownership.  The ASF licenses this file
.\"     to you under the Apache License, Version 2.0 (the
.\"     "License"); you may not use this file except in compliance
.\"     with the License.  You may obtain a copy of the License at
.\"    
.\"       http://www.apache.org/licenses/LICENSE-2.0
.\"    
.\"     Unless required by applicable law or agreed to in writing,
.\"     software distributed under the License is distributed on an
.\"     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
.\"     KIND, either express or implied.  See the License for the
.\"     specific language governing permissions and limitations
.\"     under the License.
.\"
.\"
.\" You can view this file with:
.\" nroff -man [filename]
.\"
.TH svndumpfilter 1
.SH NAME
svndumpfilter \- Filter a subversion repository 'dumpfile'.
.SH SYNOPSIS
.TP
\fBsvndumpfilter\fP \fIcommand\fP [\fIoptions\fP & \fIargs\fP]
.SH OVERVIEW
Subversion is a version control system, which allows you to keep old
versions of files and directories (usually source code), keep a log of
who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svndumpfilter help' to access the built-in tool documentation.
