aboutsummaryrefslogtreecommitdiffstats
path: root/doc/contrib.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/contrib.txt')
-rw-r--r--doc/contrib.txt60
1 files changed, 60 insertions, 0 deletions
diff --git a/doc/contrib.txt b/doc/contrib.txt
new file mode 100644
index 000000000..fb30fbad4
--- /dev/null
+++ b/doc/contrib.txt
@@ -0,0 +1,60 @@
+
+Contributing To Botan
+========================================
+
+Getting The Latest Sources
+----------------------------------------
+
+Botan's development occurs using a distributed version control system
+called `Monotone <http://www.monotone.ca>`_.
+
+The main branch of development occurs on the branch named
+``net.randombit.botan``; this is probably the branch you want,
+especially if you are planning on making major changes. To
+download that branch and set up a new workspace, run::
+
+ $ mtn db init --db=botan.mtn
+ $ mtn pull --db=botan.mtn randombit.net 'net.randombit.botan'
+ [...]
+ $ mtn checkout --db=botan.mtn --branch=net.randombit.botan
+ [...]
+
+By default the ``checkout`` command will place the workspace in a
+directory with the same name as the branch you are checking out. If
+you want a different directory name, just include it after the
+``--branch`` option (you can also rename this directory at any time).
+
+If this is the first time you've connected to the server, Monotone
+will print::
+
+ mtn: first time connecting to server randombit.net
+ mtn: I'll assume it's really them, but you might want to double-check
+ mtn: their key's fingerprint: 8c0b868f2247215c63c96983b1c8ca0f0f0cfd9a
+
+The fingerprint shown above was the correct one as of September 21,
+2010.
+
+To pull further changes, from anywhere in the workspace run these
+commands::
+
+ $ mtn pull
+ [...]
+ $ mtn update
+ [summary of changes]
+
+The ``mtn update`` command will give you a summary of which files
+changed; to view the full changelog, run ``mtn log``.
+
+Monotone's distributed nature means you can check into your database
+while continuing to merge changes made upstream. This is particularly
+useful if your change is large or invasive, as you can checkpoint your
+progress over time.
+
+If you are making a large number of changes, you may want to start up
+a new branch that occasionally merges against the mainline; check the
+monotone documentation for details.
+
+After you finish your changes, you can review them using ``mtn diff``
+to diff against the latest official head; send the output to the
+mailing list for review and inclusion.
+