summaryrefslogtreecommitdiffstats
path: root/docs/dev/gerrit.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/dev/gerrit.rst')
-rw-r--r--docs/dev/gerrit.rst203
1 files changed, 203 insertions, 0 deletions
diff --git a/docs/dev/gerrit.rst b/docs/dev/gerrit.rst
new file mode 100644
index 0000000..b227d21
--- /dev/null
+++ b/docs/dev/gerrit.rst
@@ -0,0 +1,203 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Dell EMC and others.
+
+======
+Gerrit
+======
+
+Installing and configuring Git and Git-Review is necessary in order to follow
+this guide. The `Getting Started <https://wiki.opnfv.org/display/DEV/
+Developer+Getting+Started>`_ page will provide you with some help for that.
+
+Committing the code with Gerrit
+===============================
+
+* Open a terminal window and set the project's directory to the working
+ directory using the cd command. In this case "/home/tim/OPNFV/storperf" is
+ the path to the StorPerf project folder on my computer. Replace this with the
+ path of your own project.
+
+.. code-block:: bash
+
+ cd /home/tim/OPNFV/storperf
+
+* Start a new topic for your change.
+
+.. code-block:: bash
+
+ git checkout -b TOPIC-BRANCH
+
+* Tell Git which files you would like to take into account for the next commit.
+ This is called 'staging' the files, by placing them into the staging area,
+ using the 'git add' command (or the synonym 'git stage' command).
+
+.. code-block:: bash
+
+ git add storperf/utilities/math.py
+ git add storperf/tests/utilities/math.py
+ ...
+
+* Alternatively, you can choose to stage all files that have been modified
+ (that is the files you have worked on) since the last time you generated a
+ commit, by using the -a argument.
+
+.. code-block:: bash
+
+ git add -a
+
+* Git won't let you push (upload) any code to Gerrit if you haven't pulled the
+ latest changes first. So the next step is to pull (download) the latest
+ changes made to the project by other collaborators using the 'pull' command.
+
+.. code-block:: bash
+
+ git pull
+
+* Now that you have the latest version of the project and you have staged the
+ files you wish to push, it is time to actually commit your work to your local
+ Git repository.
+
+.. code-block:: bash
+
+ git commit --signoff -m "Title of change
+
+ Test of change that describes in high level what
+ was done. There is a lot of documentation in code
+ so you do not need to repeat it here.
+
+ JIRA: STORPERF-54"
+
+The message that is required for the commit should follow a specific set of
+rules. This practice allows to standardize the description messages attached to
+the commits, and eventually navigate among the latter more easily. This
+`document <https://chris.beams.io/posts/git-commit/>`_ happened to be very clear
+and useful to get started with that.
+
+
+Pushing the code to Git for review
+==================================
+
+* Now that the code has been comitted into your local Git repository the
+ following step is to push it online to Gerrit for it to be reviewed. The
+ command we will use is 'git review'.
+
+.. code-block:: bash
+
+ git review
+
+* This will automatically push your local commit into Gerrit, and the command
+ should get back to you with a Gerrit URL that looks like this :
+
+.. image:: ../images/git_review.png
+
+* The OPNFV-Gerrit-Bot in #opnfv-storperf IRC channel will send a message with
+ the URL as well.
+
+.. image:: ../images/gerrit_bot.png
+
+* Copy/Paste the URL into a web browser to get to the Gerrit code review you
+ have just generated, and click the 'add' button to add reviewers to review
+ your changes :
+
+.. image:: ../images/add_reviewers.png
+
+.. note::
+
+ Check out this `section <https://wiki.opnfv.org/display/storperf/Development
+ +Environment#DevelopmentEnvironment-IfGerrituploadisdenied>`_ if the git
+ review command returns to you with an "access denied" error.
+
+
+Fetching a Git review
+=====================
+
+If you want to collaborate with another developer, you can fetch their review
+by the Gerrit change id (which is part of the URL, and listed in the top left
+as Change NNNNN).
+
+.. code-block:: bash
+
+ git review -d 16213
+
+would download the patchset for change 16213. If there were a topic branch
+associated with it, it would switch you to that branch, allowing you to look at
+different patch sets locally at the same time without conflicts.
+
+
+Modifying the code under review in Gerrit
+=========================================
+
+At the same time the code is being reviewed in Gerrit, you may need to edit it
+to make some changes and then send it back for review. The following steps go
+through the procedure.
+
+* Once you have modified/edited your code files under your IDE, you will have
+ to stage them. The 'status' command is very helpful at this point as it
+ provides an overview of Git's current state.
+
+.. code-block:: bash
+
+ git status
+
+.. image:: ../images/git_status.png
+
+* The output of the command provides us with the files that have been modified
+ after the latest commit (in this case I modified storperf/tests/utilities/
+ math.py and storperf/utilities/math.py).
+
+* We can now stage the files that have been modified as part of the Gerrit code
+ review edition/modification/improvement :
+
+.. code-block:: bash
+
+ git add storperf/tests/utilities/math.py
+ git add storperf/utilities/math.py
+
+* The 'git status' command should take this into consideration :
+
+.. image:: ../images/git_status_2.png
+
+* It is now time to commit the newly modified files, but the objective here is
+ not to create a new commit, we simply want to inject the new changes into the
+ previous commit. We can achieve that with the '--amend' option on the
+ 'commit' command :
+
+.. code-block:: bash
+
+ git commit --amend
+
+.. image:: ../images/amend_commit.png
+
+* If the commit was successful, the 'status' command should not return the
+ updated files as about to be committed.
+
+* The final step consists in pushing the newly modified commit to Gerrit.
+
+.. code-block:: bash
+
+ git review
+
+.. image:: ../images/git_review_2.png
+
+The Gerrit code review should be updated, which results in a 'patch set 2'
+notification appearing in the history log. 'patch set 1' being the original
+code review proposition.
+
+
+If Gerrit upload is denied
+==========================
+
+The 'git review' command might return to you with an "access denied" error that
+looks like this :
+
+.. image:: ../images/Access_denied.png
+
+In this case, you need to make sure your Gerrit account has been added as a
+member of the StorPerf contributors group : ldap/opnfv-gerrit-storperf-
+contributors. You also want to check that have signed the CLA (Contributor
+License Agreement), if not you can sign it in the "Agreements" section of your
+Gerrit account :
+
+.. image:: ../images/CLA_agreement.png
+