initial code repo
[stor4nfv.git] / src / ceph / doc / install / clone-source.rst
diff --git a/src/ceph/doc/install/clone-source.rst b/src/ceph/doc/install/clone-source.rst
new file mode 100644 (file)
index 0000000..9ed32c0
--- /dev/null
@@ -0,0 +1,101 @@
+=========================================
+ Cloning the Ceph Source Code Repository
+=========================================
+
+You may clone a Ceph branch of the Ceph source code by going to `github Ceph
+Repository`_,  selecting a branch (``master`` by default), and clicking the
+**Download ZIP** button.
+
+.. _github Ceph Repository: https://github.com/ceph/ceph
+
+
+To clone the entire git repository, install and configure ``git``.
+
+
+Install Git
+===========
+
+To install ``git`` on Debian/Ubuntu, execute::
+
+       sudo apt-get install git
+
+
+To install ``git`` on CentOS/RHEL, execute::
+
+       sudo yum install git
+
+
+You must also have a ``github`` account. If you do not have a
+``github`` account, go to `github.com`_ and register.
+Follow the directions for setting up git at 
+`Set Up Git`_.
+
+.. _github.com: http://github.com
+.. _Set Up Git: http://help.github.com/linux-set-up-git
+
+
+Add SSH Keys (Optional)
+=======================
+
+If you intend to commit code to Ceph or to clone using SSH
+(``git@github.com:ceph/ceph.git``), you must generate SSH keys for github. 
+
+.. tip:: If you only intend to clone the repository, you may 
+   use ``git clone --recursive https://github.com/ceph/ceph.git`` 
+   without generating SSH keys.
+
+To generate SSH keys for ``github``, execute::
+
+       ssh-keygen
+
+Get the key to add to your ``github`` account (the following example
+assumes you used the default file path)::
+
+       cat .ssh/id_rsa.pub
+
+Copy the public key.
+
+Go to your ``github`` account, click on "Account Settings" (i.e., the
+'tools' icon); then, click "SSH Keys" on the left side navbar.
+
+Click "Add SSH key" in the "SSH Keys" list, enter a name for the key, paste the
+key you generated, and press the "Add key" button.
+
+
+Clone the Source
+================
+
+To clone the Ceph source code repository, execute::
+
+       git clone --recursive https://github.com/ceph/ceph.git
+
+Once ``git clone`` executes, you should have a full copy of the Ceph 
+repository.
+
+.. tip:: Make sure you maintain the latest copies of the submodules
+   included in the repository. Running ``git status`` will tell you if
+   the submodules are out of date.
+
+::
+
+       cd ceph
+       git status
+
+If your submodules are out of date, run::
+
+       git submodule update --force --init --recursive
+
+Choose a Branch
+===============
+
+Once you clone the source code and submodules, your Ceph repository 
+will be on the ``master`` branch by default, which is the unstable 
+development branch. You may choose other branches too.
+
+- ``master``: The unstable development branch.
+- ``stable``: The bugfix branch.
+- ``next``: The release candidate branch.
+
+::
+
+       git checkout master