blob: 3796d4264a7e42178ff7fb69947ac44cbef26976 [file] [log] [blame]
== Improve a Change
This exercise shows how to improve a change that didn’t pass the code
review by submitting another patch set. Each (new) patch set is
another iterative improvement of the change. There could be several
rounds of improvements (new patch sets) until the change is ready to
be submitted to the code base.
=== Preparation
* There is a change that was reviewed and needs to be improved.
* Case-1: you are going to improve your own change.
* Case-2: you are going to improve a change started by someone else
(who is not able to continue working on that change for some
reason).
Depending on which case you choose, follow the link:#case-1[Case-1] or
the link:#case-2[Case-2] exercise. You may also try both exercises.
[[case-1]]
=== Case-1: Checkout your feature branch from where you pushed the patch set 1
* Make sure that you have a clean working directory. If you have
uncommitted changes, commit them or do a hard reset to discard them.
* Make sure the feature branch is checked-out. If not double click the
feature branch to check it out.
+
image:branch-checkout.png[Branch Checkout]
[[case-2]]
=== Case-2: Fetch the latest patch set of the change you want to improve
* 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 the change that should be improved 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 'Create and checkout a local branch' option and enter a
local branch name if you don’t like the default. For example you may
name the local branch 'improve-divide-op' if you are going to
continue working on the change that provides the divide operation:
+
image:fetch-from-gerrit-5.png[Fetch from Gerrit]
=== Improving the Change
* From the web browser look at the change and read the comments
written by the reviewer(s) and start improving the source code from
Eclipse.
* When done with the improvements, commit the change. Make sure to
choose the 'Amend Previous Commit' in the commit dialog:
+
image:commit-changes-with-amend.png[Commit Changes with Amend]
* *Don’t change* the already existing Change-Id footer! The Change-Id
will be used by Gerrit to determine that you are pushing a next
patch set for an already existing change.
* Click 'Commit' to commit your improvement in the local branch.
=== Push the next patch set
* Right-click the Git repository node and select 'Push to Upstream'
from the context menu in order to push your commit to Gerrit:
+
image:push-to-upstream-2.png[Push to Upstream]
* A confirmation dialog pops-up and shows the result of the push:
+
image:push-confirmation-2.png[Push Confirmation]
* Visit your change in Gerrit Web UI and note that a 'Patch Set 2' was
created:
+
image:patch-set-2.png[Patch Set 2]
* The patch set 2 is ready for code review. Find somebody to review
the patch set 2 of your change.
The iterative process of review and providing a next patch set can be
repeated any number of times until reviewer(s) are satisfied with the
change and your change achieves highest votes in all voting categories
('Code-Review' and 'Verified' by default).
link:index.html[Gerrit Exercises]