| = 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 draft change, unless | |
| link:config-gerrit.html#change.allowDrafts[change.allowDrafts] is set to false, | |
| in which case the change is created as a normal new 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 | |
| --------- |