                      Documentation for Subversion
                      ============================

A rough guide:

  http://svnbook.red-bean.com/
                             "Version Control with Subversion"
                             (a.k.a. "The Subversion Book", "The Svnbook",
                             and formerly entitled
                             "Subversion: The Definitive Guide".)
                             This is the book that has been published by
                             O'Reilly & Associates. For both newbies and
                             experts alike.  Written in DocBook Lite,
                             and now maintained in a separate repository
                             of its own.
                             
  HOWTO.DocBook              Instructions on how to build HTML, PDF, 
                             or PostScript from DocBook Lite source.

  misc-docs/                 Holds additional DocBook Lite material that
                             either isn't yet ready to go into the
                             the Subversion Book, or which may never go
                             into the Book but instead into companion
                             documents that would be available from the
                             Subversion site.  Think of it as a
                             temporary, but published, holding area.

  programmer/                Documents for Subversion programmers.

  programmer/WritingChangeLogs.txt
                             A longer version of the info in
                             www/hacking.html.

  user/                      Documents for Subversion users.

  user/lj_article.txt        An introductory article from Linux Journal.

  user/svn-ref.tex           LaTeX source for an svn quick-ref sheet.

  user/*.html                Some documentation that should probably be
                             migrated to DocBook Lite and misc-docs/.

  translations/french        A translation of the Subversion handbook
                             (which has been absorbed into the book).
 
If you'd like to document a new feature, try to find a place for it
somewhere in misc-docs.
