\input texinfo  @c -*-texinfo-*-

@comment Subversion Design
@comment Copyright (C) 1999-2003 CollabNet

@c  ================================================================
@c  Copyright (c) 2000-2003 CollabNet.  All rights reserved.
@c  
@c  Redistribution and use in source and binary forms, with or without
@c  modification, are permitted provided that the following conditions are
@c  met:
@c  
@c  1. Redistributions of source code must retain the above copyright
@c  notice, this list of conditions and the following disclaimer.
@c  
@c  2. Redistributions in binary form must reproduce the above copyright
@c  notice, this list of conditions and the following disclaimer in the
@c  documentation and/or other materials provided with the distribution.
@c  
@c  3. The end-user documentation included with the redistribution, if
@c  any, must include the following acknowledgment: "This product includes
@c  software developed by CollabNet (http://www.Collab.Net/)."
@c  Alternately, this acknowledgment may appear in the software itself, if
@c  and wherever such third-party acknowledgments normally appear.
@c  
@c  4. The hosted project names must not be used to endorse or promote
@c  products derived from this software without prior written
@c  permission. For written permission, please contact info@collab.net.
@c  
@c  5. Products derived from this software may not use the "Tigris" name
@c  nor may "Tigris" appear in their names without prior written
@c  permission of CollabNet.
@c  
@c  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
@c  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
@c  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
@c  IN NO EVENT SHALL COLLABNET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
@c  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
@c  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
@c  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@c  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
@c  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
@c  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
@c  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@c 
@c  ====================================================================
@c  
@c  This software consists of voluntary contributions made by many
@c  individuals on behalf of CollabNet.


@c %**start of header
@setfilename svn-design.info
@settitle Subversion Design
@setchapternewpage odd
@c %**end of header

@paragraphindent 0

@c @finalout

@ifinfo
@format
INFO-DIR-SECTION Development
START-INFO-DIR-ENTRY
* Subversion Design: (svn-design).  Design of Subversion.
END-INFO-DIR-ENTRY
@end format
@end ifinfo

@c Browser defaults lose.  Let's go for black text on white background.
@ifhtml
@html
<body bgcolor="#FFFFFF" fgcolor="#000000">
@end html
@end ifhtml

@c -----------------------------------------------------------------
@titlepage
@title @titlefont{Subversion}
@subtitle{A New Version Control System}
@author Jim Blandy <@email{jimb@@redhat.com}>
@author Karl Fogel <@email{kfogel@@collab.net}>
@author Ben Collins-Sussman <@email{sussman@@collab.net}>

@page
@vskip 0pt plus 1filll
Copyright @copyright{} 2000-2003 Collab.Net, Inc. @*
See @xref{License} for details. @*
First version: June 2000.  @*
$LastChangedDate$

@end titlepage
@c -----------------------------------------------------------------

@summarycontents
@contents

@node Top
@top

@ifinfo
This manual describes the design of the Subversion version control
system.

@end ifinfo

@menu
* Goals::                        The goals of the Subversion project.
* Model::                        The versioning model used by Subversion.
* Architecture::                 How Subversion's components work together.
* Deltas::                       How to describe changes.
* Client::                       How the client works.
* Protocol::                     How the client and server communicate.
* Server::                       How the server works.
* License::                      Copyright.
@end menu

@include goals.texi
@include model.texi
@include architecture.texi
@include deltas.texi
@include client.texi
@include protocol.texi
@include server.texi
@include license.texi

@c @include indices.texi

@bye
