== Submit a Change to the Codebase
This exercise shows how to submit a change to the codebase. To be
submitable a change must have successfully passed the code review,
which means that:

* it got at least one highest possible vote in all voting categories
* and that there are no veto votes on any of the voting categories

=== Preparation

* follow the gerrit exercises link:push-a-change-to-gerrit.html[Push a
  Change to Gerrit] and link:review-a-change.html[Review a Change] to
  create and review a change
* you may also complete the gerrit exercise
  link:improve-a-change.html[Improve a Change], but it is not
  mandatory
* make sure your change has highest votes in all review categories and
  that there are no veto votings in any of the voting categories

=== Submitting the change
To submit a change click the 'Submit Patch Set n' button on the change
screen in the Gerrit WebUI:

image:submit.png[Submit]

There are 3 possible outcomes of the Submit action:

==== 1. The change is merged successfully
If the change merges without any conflicts you will see that the
status of the change changed to 'Merged'.

image:merged.png[Merged]

==== 2. The change is submitted but the merge is pending
If the status changed to 'Submitted, Merge Pending' then the change
depends on another change that is still open (in review). In that case
the change will be merged automatically once all its dependencies are
submitted and merged.

==== 3. The submit fails due to merge conflicts
It may also happen that the submit fails due to merge conflicts. In
that case you will have to resolve the merge conflicts in your local
branch and then push another patch set. The steps are:

* Fetch the upstream. This updates the local 'origin/master' branch to
  its latest state. Follow the git exercise
  link:../git/fetch-the-latest-state-from-upstream.html[Fetch the
  Latest State from Upstream].
* Rebase your feature branch to the 'origin/master'. Follow the git
  exercise
  link:../git/merge-rebase-and-resolving-conflicts.html#rebase[
  Merge, Rebase and Resolving Conflicts (section Rebase)]. You will
  get conflicts.
* Follow git exercise
  link:../git/merge-rebase-and-resolving-conflicts.html#resolve-conflicts[
  Merge, Rebase and Resolving Conflicts (section Resolve Merge
  Conflicts)] to resolve the conflicts.
* Commit using the 'amend' option as described in the gerrit exercise
  link:improve-a-change.html[Improve a Change].
* Push to the upstream as described in gerrit exercise
  link:push-a-change-to-gerrit.html[Push a Change to Gerrit].
* After that a new patch set is created for this change. The new patch
  set has again to pass the code review as shown in the gerrit
  exercise link:review-a-change.html[Review a Change].
* Submit the change again once it passes the code review

link:index.html[Gerrit Exercises]
