Also, we have two options regarding CVS users: place "side" boxes
throughout the text, explaining how things are different, whenever
necessary.  An alternative is to place all of the information into one
appendix, and have our side-boxes simply point to relevant sections.
That's what I'm assuming for now, because I think we all liked that
better.

0. Preface

   A.  Version control
   B.  Target audience
   C.  How the Book is Organized
   D.  Typographic conventions
   E.  Comments/Questions/Obtaining the Free Book
   F.  Acknowledgements

I. Introduction

   A.  What is Subversion?
   B.  History of Subversion
   C.  Subversion's Features
   D.  The components  (a table listing svn, svnadmin, svnlook, etc.)
   E.  How to get binaries

II. Basic Concepts

   (This is the conversational introduction-by-example, explaining the
    copy-modify-merge model, working copy vs. repository,
    transactions, revision numbers, etc.  Jimb wrote the original
    text, and it's evolved some, but I'm absolutely in love with it.)


III. Guided Tour

    (Full walkthrough of the most common commands you would use on a
       typical day with Subversion, probably in this order:)

      1.  svn help
      2.  cross-ref to 'how to import'
      3.  initial checkout
      4.  basic workcycle:
           a. svn update
           b. make changes:  edit directly, svn add, remove, copy, move
           c. examine changes:  svn status, info, diff, revert
           d. resolve conflicts:  svn update, resolved
           e. svn commit
      5.  examining history:  svn log, diff


IV. Branching and Merging

   (Detailed discussion of how branches and tags work via "copies".
    Use lots of examples:  introduce {copy, mkdir, merge, switch}.)

   Opening explanation of what branches are, how they're used.
   (Ben has a great explanation for this.)

   A. Creating branches  (svn copy)

   B. Porting changes  (svn merge)

   C. Removing changes  (svn merge)

   D. Branch maintentance (layout, svn move, svn delete)

   E. "Advanced shortcuts": switching to a Branch with svn switch.
       Show clever use-cases in here too. (Ben has some examples.)


V.  Repository Administration

   A.  Repository creation and configuration 

      1. creating a repository
      2. repository hooks
         - example hooks
         - testing your hooks by hand
      3. DB_CONFIG file

   B.  Repository maintenance

      1. examining a repository (svnlook, shell)
      2. maintaining a repository (svnadmin, svnadmin recover, backup options)
      3. migrating a repository (dump/load)
      4. repository backup (tools and philosophy)

   C.  Networking your repository (apache setup, auth options)

      1. apache setup
      2. auth options
      3. common mistakes
         - perms on repos/dav
         - perms after svnadmin recover
         - passing URLs to svnadmin/svnlook
         - hand-editing the 'format' file

   D.  Adding Projects
      
      1. repos layout
      2. import vs. add vs. mkdir
      

VI.  Advanced Topics

   A. Run-time configuration area  (config, proxies, etc.)  [2.9]

   B. Properties

       1. General use (propset, propget, proplist, propdel, propedit),
          including -r switch.
       2. EOL translation
       3. Keyword substitution
       4. Other special keywords (executable, mime-type, ignore)

   C. Modules  [2.6]

   D. Vendor branches (strategies and svn_load_dirs.pl)

   E. Fine-grained access control (demonstrating how to use our hook scripts)


VII.  Developer Information

   A. Layered library design [1.2]

   B. Using the APIs  
        (C and python examples)

   C. Inside the working copy and repository   [3.0 ?]
        (discussion of interior structures)

   D. Use of WebDAV [3.7, plus gstein's notes]

   E. Contributing to Subversion
        (how to reproduce/report bugs, send patches, overview of code layout.)


VIII.  Complete Reference

   (The part of the manual that will have grey borders and be most
    thumbed through.  :-)  )


IX.  Appendices

   A.  SVN for CVS Users  [5.1]
         (the appendix which CVS users can read in one sitting, to get
         a quick conceptual 'diff' between the two systems)

   B.  CVS repository migration 
         (cvs2svn.py)

   C.  Troubleshooting  
         (how to save your working copy, svn cleanup, etc.)

   D.  FAQ?

   E.  Other clients
         (description of GUIs?)

   F.  Third-party tools
         (describe what exists)         

   G.  Index
