|  | = Inline Edit | 
|  |  | 
|  | This page explains the workflow for creating and amending changes in the | 
|  | browser. | 
|  |  | 
|  |  | 
|  | [[create-change]] | 
|  | == Creating a New Change | 
|  |  | 
|  | A new change can be created directly in the browser, meaning it is not necessary | 
|  | to clone the whole repository to make trivial changes. | 
|  |  | 
|  | The new change is created as a public | 
|  | link:user-upload.html#wip[work-in-progress change]. | 
|  |  | 
|  | There are two different ways to create a new change: | 
|  |  | 
|  | By clicking on the 'Create Change' button in the project screen: | 
|  |  | 
|  | [[create-change-from-project-info-screen]] | 
|  |  | 
|  | image::images/inline-edit-create-change-project-screen.png[width=800, link="images/inline-edit-create-change-project-screen.png"] | 
|  |  | 
|  | The user can select the branch on which the new change should be created: | 
|  |  | 
|  | image::images/inline-edit-create-change-project-screen-dialog.png[width=800, link="images/inline-edit-create-change-project-screen-dialog.png"] | 
|  |  | 
|  | By clicking the 'Follow-Up' button on the change screen, to create a new change | 
|  | based on the selected change. | 
|  |  | 
|  | [[create-change-from-change-screen]] | 
|  |  | 
|  | image::images/inline-edit-create-follow-up-change.png[width=800, link="images/inline-edit-create-follow-up-change.png"] | 
|  |  | 
|  | [[editing-change]] | 
|  | == Editing Changes | 
|  |  | 
|  | To switch to edit mode, press the 'Edit' button at the top of the file list: | 
|  |  | 
|  | [[switch-to-edit-mode]] | 
|  | image::images/inline-edit-enter-edit-mode-from-file-list.png[width=800, link="images/inline-edit-enter-edit-mode-from-file-list.png"] | 
|  |  | 
|  | While in edit mode, it is possible to add new files to the change by clicking | 
|  | the 'Add...' button at the top of the file list. | 
|  |  | 
|  | File changes can be reverted or files can be removed from the change or | 
|  | deleted files can be restored, by clicking the icons to the left of the file | 
|  | name. | 
|  |  | 
|  | To switch from edit mode back to review mode, click the 'Done Editing' button. | 
|  |  | 
|  | image::images/inline-edit-file-list-in-edit-mode.png[width=800, link="images/inline-edit-file-list-in-edit-mode.png"] | 
|  |  | 
|  | [[open-full-screen-editor]] | 
|  | While in edit mode, clicking on a file name in the file list opens a full | 
|  | screen editor for that file. | 
|  |  | 
|  | To save edits, click the 'Save' button or press `CTRL-S`.  To return to the | 
|  | change screen, click the 'Close' button. | 
|  |  | 
|  | Note that when editing the commit message, trailing blank lines will be stripped. | 
|  |  | 
|  | image::images/inline-edit-full-screen-editor.png[width=800, link="images/inline-edit-full-screen-editor.png"] | 
|  |  | 
|  | If there are unsaved edits when the 'Close' button is pressed, a dialog will | 
|  | pop up asking to confirm the edits. | 
|  |  | 
|  | image::images/inline-edit-confirm-unsaved-edits.png[width=800, link="images/inline-edit-confirm-unsaved-edits.png"] | 
|  |  | 
|  | To discard the unsaved edits and return to the change screen, click the 'OK' | 
|  | button. To continue editing, click 'Cancel'. | 
|  |  | 
|  | [[switch-to-edit-mode-from-side-by-side]] | 
|  |  | 
|  | While in review mode, it is possible to switch directly to edit mode and into an | 
|  | editor for a file under review by clicking on the edit icon in the patch set list | 
|  | on the side-by-side diff view. | 
|  |  | 
|  | image::images/inline-edit-enter-edit-mode-from-diff.png[width=800, link="images/inline-edit-enter-edit-mode-from-diff.png"] | 
|  |  | 
|  | [[reviewing-changes-made-in-change-edit]] | 
|  | == Reviewing Change Edits | 
|  |  | 
|  | Change edits are reviewed in the same way as regular patch sets, using the | 
|  | side-by-side diff screen. Change edits are shown as 'edit' in the patch list | 
|  | on the diff screen: | 
|  |  | 
|  | image::images/inline-edit-edit-in-diff-screen-patch-list.png[width=800, link="images/inline-edit-edit-in-diff-screen-patch-list.png"] | 
|  |  | 
|  | and on the change screen: | 
|  |  | 
|  | image::images/inline-edit-edit-in-patch-list.png[width=800, link="images/inline-edit-edit-in-patch-list.png"] | 
|  |  | 
|  | Note that patch sets may exist that were created after the change edit was created. | 
|  |  | 
|  | For example this sequence: | 
|  |  | 
|  | `1 2 3 4 5 6 7 8 9 edit 10` | 
|  |  | 
|  | means that the change edit was created on top of patch set number 9 and a regular | 
|  | patch set was uploaded later. | 
|  |  | 
|  | [[change-edit-actions]] | 
|  | == Change Edit Actions | 
|  |  | 
|  | Change edits can be deleted, published and rebased, and a patch set that | 
|  | represents a change edit can be downloaded like a regular patch set. | 
|  |  | 
|  | [[delete-change-edit]] | 
|  |  | 
|  | There is a special ref for a change edit. When the change edit is deleted, this | 
|  | ref is deleted as well. To delete a change edit click on the "Delete Edit" | 
|  | button. | 
|  |  | 
|  | [[publish-change-edit]] | 
|  |  | 
|  | When a change edit is based on the current patch set, it can be published. By | 
|  | publishing a change edit it is promoted to a regular patch set. The special ref | 
|  | that represents the change edit is deleted on publish. To publish a change edit | 
|  | click on the "Publish Edit" button. This button is only shown when the change | 
|  | edit is based on the current patch set. Otherwise the change edit must first be | 
|  | rebased onto the current patch set. | 
|  |  | 
|  | [[rebase-change-edit]] | 
|  |  | 
|  | Only change edits that are based on the current patch set can be published. If | 
|  | in the meantime a new patch set was uploaded, the change edit must be rebased on | 
|  | top of the current patch set before it can be published. Rebasing a change | 
|  | edit is done by clicking on the "Rebase Edit" button. If the rebase results in | 
|  | conflicts, these conflicts cannot be resolved in the browser. In this case the | 
|  | change edit must be downloaded (see below) and the conflicts must be resolved in | 
|  | the local environment. The commit that contains the conflict resolution can then | 
|  | be uploaded by setting `edit` as option on the target ref: | 
|  |  | 
|  | ---- | 
|  | $ git push host HEAD:refs/for/master%edit | 
|  | ---- | 
|  |  | 
|  | [[download-change-edit-patch]] | 
|  |  | 
|  | Like regular patch sets, change edits can be downloaded by the download | 
|  | commands (e.g. provided by the `download-commands` plugin). To download a | 
|  | change edit, select the desired scheme from the "Download" dropdown and copy the | 
|  | command to your terminal. Note: only change edit owners and users that were | 
|  | granted the link:access-control.html#capability_accessDatabase[accessDatabase] | 
|  | global capability are able to access change edit refs. | 
|  |  | 
|  | [[search-for-change-edits]] | 
|  |  | 
|  | To search change edits from the UI the link:user-search.html#has[has:edit] | 
|  | predicate can be used. | 
|  |  | 
|  | Alternatively change edits can be accessed through "My => Edits" dashboard. | 
|  |  | 
|  | [[not-implemented-features]] | 
|  | == Not Implemented Features | 
|  |  | 
|  | * Support default configuration options for inline editor that an | 
|  | administrator has set in `refs/users/default:preferences.config` file. | 
|  |  | 
|  | * Allow to rename files that are already contained in the change (from the file table). | 
|  | The same rename file dialog can be used with preselected and disabled original file | 
|  | name. | 
|  |  | 
|  | * Changed files in change edit should be marked as changed in file table in edit mode. | 
|  | One option is to use dirty icon or "*" char in front of changed files, another option | 
|  | is to use different hyperlink color for changed files (red?), to avoid adding yet another | 
|  | column to the file table | 
|  |  | 
|  | * Add navigation icons in header area of edit screen. When dozen files need to be changed | 
|  | in context of change edit, this is not the best workflow to open one file in edit screen, | 
|  | change it, save it, close edit screen and select next file from the file table to edit. | 
|  | "<-" | "->" icons in header of edit screen could be used to navigate to the next file to | 
|  | change from the file table. This would behave like the navigation icons in side by side | 
|  | with the following logic on click: | 
|  |  | 
|  | ** "save-when-file-was-changed" or | 
|  | ** "close-when-no-changes" | 
|  |  | 
|  | * Implement conflict resolution during rebase of change edit using inline edit | 
|  | feature by creating new edit on top of current patch set with auto merge content | 
|  |  | 
|  | * Similarly, reuse inline edit feature for conflict resolution during rebase of regular | 
|  | patch sets | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  | Part of link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |