                                                                -*-text-*-

                      ===========================
                       Hacker's Guide To cvs2svn
                      ===========================

This project tends to use the same social and technical guidelines
(where applicable) as Subversion itself.  You can view them online at
http://subversion.apache.org/docs/community-guide/conventions.html.

* The source code is accessible from two places:

  * The primary repository for cvs2svn is held in Subversion under the
    following URL:

      http://cvs2svn.tigris.org/svn/cvs2svn

    The repository is readable by anybody using username="guest",
    password="" (i.e., just press return).

  * Michael Haggerty maintains a Git mirror of the trunk and some
    other branches at GitHub:

      https://github.com/mhagger/cvs2svn

    The branches in this repository are subject to being rebased
    and/or rewritten, though I'll try to avoid doing so with "master"
    and release branches.

    Feel free to fork this repository and push your patches to your
    fork, but please *also* email the dev mailing list with any
    discussion and a link to the patches.  The mailing list remains
    the main forum for discussing changes to cvs2svn.

* Read the files under doc/, especially:

  * doc/design-notes.txt gives a high-level description of the
    algorithm used by cvs2svn to make sense of the CVS history.

  * doc/symbol-notes.txt describes how CVS symbols are handled.

  * doc/making-releases.txt describes the procedure for making a new
    release of cvs2svn.

* Read the files under www/, especially:

  * www/features.html describes abstractly many of the CVS
    peculiarities that cvs2svn attempts to deal with.

  Please note that changes committed to the trunk version of www/ are
  automatically deployed to the cvs2svn project website.

* Read the class and method docstrings.

* Adhere to the code formatting conventions of the rest of the
  project (e.g., limit line length to 79 characters).

* We no longer require the exhaustive commit messages required by the
  Subversion project.  But please include commit messages that:

  * Describe the *reason* for the change.

  * Attribute changes to their original author using lines like

    Patch by: Joe Schmo <schmo@example.com>

* Please put a new test in run-tests.py when you fix a bug.

* Use 2 spaces between sentences in comments and docstrings.  (This
  helps sentence-motion commands in some editors.)


Happy hacking!

