--- /dev/null
+==========================
+ Git, Cloning and Patches
+==========================
+
+GNU MediaGoblin uses git for all our version control and we have
+the repositories hosted on `Gitorious <http://gitorious.org/>`_.
+
+We have two repositories. One is for the project and the other is for
+the project website.
+
+
+How to clone the project
+========================
+
+Do::
+
+ git clone git://gitorious.org/mediagoblin/mediagoblin.git
+
+
+How to send in patches
+======================
+
+All patches should be tied to issues in the `issue tracker
+<http://bugs.foocorp.net/projects/mediagoblin/issues>`_.
+That makes it a lot easier for everyone to track proposed changes and
+make sure your hard work doesn't get dropped on the floor!
+
+If there isn't an issue for what you're working on, please create
+one. The better the description of what it is you're trying to
+fix/implement, the better everyone else is able to understand why
+you're doing what you're doing.
+
+There are two ways you could send in a patch.
+
+
+How to send in a patch from a publicly available clone
+------------------------------------------------------
+
+Add a comment to the issue you're working on with the following bits
+of information:
+
+* the url for your clone
+* the revs you want looked at
+* any details, questions, or other things that should be known
+
+
+How to send in a patch if you don't have a publicly available clone
+-------------------------------------------------------------------
+
+Assuming that the remote is our repository on gitorious and the branch
+to compare against is master, do the following:
+
+1. checkout the branch you did your work in
+2. do::
+
+ git format-patch -o patches origin/master
+
+3. either:
+
+ * tar up and attach the tarball to the issue you're working on, OR
+ * attach the patch files to the issue you're working on one at a
+ time
+
+
+How to learn git
+================
+
+Check out :ref:`hacking-howto-git`!
Tips for people new to coding
=============================
-Python
-------
+Learning Python
+---------------
GNU MediaGoblin is written using a programming language called `Python
<http://python.org/>`_.
FIXME - are there good quality Python tutorial videos?
-Libraries
----------
+Learning Libraries GNU MediaGoblin uses
+---------------------------------------
GNU MediaGoblin uses a variety of libraries in order to do what it
does. These libraries are listed in the :ref:`beardomatic-chapter`
If you have questions or need help, find us on the mailing list and on
IRC.
+
+
+.. _hacking-howto-git:
+
+Learning git
+------------
+
+git is an interesting and very powerful tool. Like all powerful
+tools, it has a learning curve.
+
+If you're new to git, we highly recommend the following resources for
+getting the hang of it:
+
+* `Learn Git <http://learn.github.com/p/intro.html>`_ --- the GitHub
+ intro to git
+* `Pro Git <http://progit.org/book/>`_ --- fantastic book
+* `Git casts <http://gitcasts.com/>`_ --- screencast covering git
+ usage
+* `Git Reference <http://gitref.org/>`_ --- Git reference that makes
+ it easier to get the hang of git if you're coming from other version
+ control systems
+
+
+Learning other utilities
+------------------------
+
+The `OpenHatch <http://openhatch.org/>`_ site has a series of
+`training missions <http://openhatch.org/missions/>`_ which are
+designed to help you learn how to use these tools.
+
+If you're new to tar, diff and patch, we highly recommend you sign up
+with OpenHatch and do the missions.