mirror of
https://github.com/ceph/ceph
synced 2024-12-21 10:54:42 +00:00
3a8b8284dd
When updating submodules, always checkout even if the HEAD is the desired commit hash (update --force) to avoid the following: * a directory gmock exists in hammer * a submodule gmock replaces the directory gmock in master * checkout master + submodule update : gmock/.git is created * checkout hammer : the gmock directory still contains the .git from master because it did not exist at the time and checkout won't remove untracked directories * checkout master + submodule update : git rev-parse HEAD is at the desired commit although the content of the gmock directory is from hammer Signed-off-by: Loic Dachary <ldachary@redhat.com>
102 lines
2.5 KiB
ReStructuredText
102 lines
2.5 KiB
ReStructuredText
=========================================
|
|
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 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
|