== Review a Change
In this exercise you will do a code review in Gerrit.

=== Preparation

* Follow the link:push-a-change-to-gerrit.html[exercise to create an
  open change in Gerrit].

You can review your own change or a change created by somebody else.
In practice you will usually review changes of others and others will
review your changes. Therefore, try to find a change (for
the 'egit-training' project) not created by you and use it for this
exercise.

A review of a simple change is usually done only from Gerrit. However,
for a more complex change you may want to fetch it into your local Git
repository, build it and look at it from Eclipse.

=== Review the source code changes from Gerrit
A change consists of one or more patch sets. One patch set corresponds
to one Git commit. When a change has more than one patch set it is
only necessary to review the latest patch set! This is an important
principle in Gerrit to remember.

* Look at the list of files under the latest patch set (patch set 1 in
  this case). These are the files that were added, modified or deleted
  within this change.
+
image:file-list.png[File List]
+
NOTE: In addition to the files you will also find the
'Commit Message' in this list. This allows you to
link:#review-commit-message[comment on the commit message].

* Click the 'Side-by-Side' link of a file to open a page displaying
  the changes done in this file. The left side shows the old version
  and the right side shows the new version of the file. The diff is
  highlighted:
+
image:side-by-side.png[Side-by-Side]

* Look at every change you see
* If you want to comment on a source code line just double click it
  and type in your comment:
+
image:inline-comment.png[Inline Comment]

* Click on 'Save' in order to save the your comment as draft
+
NOTE: the comments you create are not yet visible to anybody else but
you. Only when you publish your comments they will become visible to
everybody.

* Continue reviewing other files in the same way

[[review-commit-message]]
=== Review the commit message
Providing a good commit message is as important as writing good code.
A good commit message should describe why (the motivation) and not
what. When months or years later you look at a change in your Git
history you will easily see what was changed. However, only if the
commit message was good you will know why this change was made.

Therefore, Gerrit also provides review of the commit message. It is
done the same way as reviewing a file and the commit message appears
at the top of the file list:

image:file-list-2.png[File List]

=== Vote and Publish your Comments

* Click on the 'Up to Change' link to go back to the change screen
+
image:up-to-change.png[Up to Change]

* Click on the 'Review' button
+
image:review.png[Review]

* Vote in the 'Code Review' category
+
image:code-review-voting.png[Code Review Voting]

* If a Gerrit Trigger build job is configured the voting in the
  'Verified' category will be automatically done, but you may also
  manually vote in this category.
+
image:hudson-voter-voting.png[HudsonVoter Voting]

* Write the cover message and click the on 'Publish Comments' button:
+
image:publish-comments.png[Publich Comments]

The next chapter shows another possibility which is useful when
reviewing more complex changes.

=== Fetching the Change into Eclipse
When a change is more complex you may want to fetch it into your local
Git repository in order to look at it from Eclispe. In that case you
may build it locally, debug it etc...

* Make sure that you have a clean working directory. If you have
  uncommitted changes, commit them or do a hard reset to discard them.
* To fetch a change first note the numerical change ID of it. Look at
  the URL of the change in the web browser and locate the numerical
  Change ID:
+
image:numerical-change-id.png[Numerical Change ID]
+
In this case it is 127485.

* In Eclipse right-click the Git repository node and choose 'Fetch
  from Gerrit' from the context menu:
+
image:fetch-from-gerrit.png[Fetch from Gerrit]

* In the 'Fetch a change from Gerrit' dialog enter the Change ID:
+
image:fetch-from-gerrit-2.png[Fetch from Gerrit]
+
Then press 'Ctrl-Space' for auto-completion and choose the first item
from the list by either pressing 'Enter' or by double clicking the
item.
+
image:fetch-from-gerrit-3.png[Fetch from Gerrit]

* Choose the 'Checkout FETCH_HEAD' option. This will checkout the
  fetched change but will not create a local branch. This is enough if
  you are not going to contribute further modifications of the change.
+
image:fetch-from-gerrit-4.png[Fetch from Gerrit]

Now, you have the change checked out locally and your working tree
reflects the state the author of the change had when he committed this
change.

Note that the code review and sharing a change happen before the
change gets submitted into the main code base.

link:index.html[Gerrit Exercises]
