:linkattrs:
= Creating and Editing Changes in the Gerrit Web Interface

== Overview

The following content explains how to use the Gerrit web interface to create
and edit changes. Use the web interface to make minor changes to files. When
you create a change in the Gerrit user interface, you don't clone a Gerrit
repository or use the CLI to issue Git commands — you perform your work
directly in the Gerrit web interface.

To learn more, see the link:intro-user.html[Gerrit User's Guide].


[[create-change]]
== Creating a Change

[[create_in_web_interface]]
=== In the web interface

To create a change in the Gerrit web interface:

. From the link:http://gerrit-review.googlesource.com[Gerrit Code Review,role=external,window=_blank]
  dashboard, select Browse > Repositories.

. Under Repository Name, click the name of the repository you want to work
  on. For example, Public-Projects. To find a specific repository, enter all
  or part of its name next to Filter:
+
image::images/inline-edit-home-page.png[width=600]

. In the left navigation panel for the repository you selected, click
  Commands:
+
image::images/inline-edit-create-change.png[width=350]

. Under Repository Commands, click Create Change.

. In the Create Change window, enter the following information:

   *  Select branch for new change: Specify the destination branch of the
      change.

   *  Provide base commit SHA-1 for change: Leave this field blank.

+
IMPORTANT: Git uses a unique SHA-1 value to identify each and every commit (in
other words, each Git commit generates a new SHA-1 hash). This value differs
from a Gerrit Change-Id, which is used by Gerrit to uniquely identify a
change. The Gerrit Change-Id remains static throughout the life of a Gerrit
change.

   -  Description: Briefly describe the change. Be sure to use the
      link:dev-contributing.html#commit-message[Commit Message] format.
      The first line becomes the subject of the change and is included in
      the Commit Message. Because the message also appears on its own in
      dashboards and in the results of `git log --pretty=oneline output`,
      make the message informative and brief.

   -  Private change: Select this option to designate this change as private.
      Only you (and any reviewers you add) can see your private changes.

. On the Create Change window, click Create. Gerrit creates a public Work
  In Progress (WIP) change. Until the change is sent for review, it remains a
  WIP and appears in _your_ dashboard only. In addition, all email
  notifications are turned off.

. Add the files you want to be reviewed.

[[create_from_url]]
=== From URL

Gerrit supports creating a new change and opening a specific file for edit
in that change from an "Edit URL":
```
^\/admin\/repos\/edit\/repo\/(.+)\/branch\/(.+)\/file\/(.+)$
```
This enables other tools to provide a direct link to edit their configuration
files in Gerrit.

Ex:
```
https://gerrit.mycompany.com/admin/repos/edit/repo/my/repo/branch/refs/heads/master/file/Jenkinsfile # Jenkins build file
https://gerrit.mycompany.com/admin/repos/edit/repo/my/repo/branch/refs/heads/master/file/catalog-info.yaml # Backstage catalog-info
```

[[add-files]]
== Adding a File to a Change

Files can only be added to changes that have not been merged into the code
base.

To add a file to the change:

. In the top right corner of the change, click Edit.
. Next to Files, click Open:

+
image::images/inline-edit-open-file.png[width=600]

. In the Open File window, do one of the following:

* To add an existing file:

 ** Enter all or part of the file name in the text box. Gerrit automatically
    populates a list of possible matching files:
+
image::images/inline-edit-prefill-files.png[width=500]
+
 ** Select the file you want to add to the change.
 ** Click Open.
+
_or,_

*  To create a new file, enter the name of the new file you want to add to the
change and then click Open.


[[editing-change]]
== Modifying a Change

To work on a file you've added to a change:

. On the change page, click the file name. When you add a new file to a
  change, a blank page is displayed. When you add an existing file to a
  change, the entire file is displayed.

. Update the file and then click Save. You _must_ click Save to add the
  file to the change.

. To close the text editor and display the change page, click Close.
+
When you save your work and close the file, the file is added to the change
and the file name is listed in the Files section. The letter displayed to the
left of the file name denotes the action performed on the file. In this case,
one file was modified:

-  M: Modified
-  A: Added
-  D: Deleted
+
image::images/inline-edit-add-file-page.png[width=650]

. When you're done editing and adding files, click Stop Editing.

. Click Publish Edit. When you publish an edit, you promote it to a regular
  patch set. The special ref that represents the change is deleted when the
  change is published.

Not happy with your edits? Click Delete Edit.


[[submit-change]]
== Starting the Review

When you start a review, Gerrit removes the WIP designation and submits
the change to code review. The change appears in other Gerrit dashboards and
reviewers are notified when the change is updated.

To start a review:

. Open the change and then click Start Review:
+
image::images/inline-edit-start-review-button.png[width=400]

. In the change notification form:

 ** Add the names of the reviewers and anyone else you want to copy.
 ** Describe the change.
 ** Click Start Review:
+
image::images/inline-edit-review-message.png[width=550]

The change is now displayed in other Gerrit dashboards and reviewers are
notified that the change is available for code review.


[[review-edits]]
== Reviewing Changes

Use the side-by-side diff screen.

image::images/inline-edit-diff-screen.png[width=800]

It's possible that subsequent patch sets may exist. For example, this sequence
means that the change was created on top of patch set 9 while a regular
patchset was uploaded later:

1 2 3 4 5 6 7 8 9 edit 10


[[search-for-changes]]
== Searching for Changes with Pending Edits

To find changes with pending edits created by you:

*  From the Gerrit dashboard, select Your > Changes. All your changes are
listed, according to Work in progress, Outgoing reviews, Incoming reviews,
CCed on, and Recently closed.

For more information about Search operators, see
link:user-search.html[Searching Changes]. For example, to find only
those changes that contain edits, see link:user-search.html#has[has:edit].

[NOTE]
Though edits created by others are not accessible from the Gerrit UI, edits
are not considered to be private data, and are stored in non-encrypted special
branches under the target repository. As such, they can be accessed by users who
have access to the repository.


[[change-edit-actions]]
== Modifying Changes


[[rebase-change-edit]]
=== Rebasing a Change Edit

Only when a change is based on the current patch set can the change be
published. In the meantime, if a new patch set has been uploaded, the change
must be rebased on top of the current patch set before the change can be
published.

To rebase a change:

-  Open the change and then click Rebase Edit.

If the rebase generates conflicts, the conflicts can't be resolved in the web
interface. Instead, the change must be downloaded (see below) and the conflicts
resolved in the local environment.

When the conflicts are resolved in the local environment, the commit that
contains the conflict resolution can be uploaded by setting `edit` as an
option on the target ref. For example:

....
$ git push host HEAD:refs/for/master%edit
....


[[download-change-edit-patch]]
=== Downloading a Patch

As with regular patch sets, you can download changes. For example, as provided
by the `download-commands` plugin. Only the owners of a change and those
users granted the
link:access-control.html#capability_accessDatabase[accessDatabase] global
capability can access change refs.

To download a change:

. Open the change, click the More icon, and then select Download patch.
. Copy the desired scheme from the Download drop-down.
. Paste the command into a terminal window.

GERRIT

Part of link:index.html[Gerrit Code Review]

SEARCHBOX
