Issue614 phase commands
Created originally on Bitbucket by colin-hurley (Colin Hurley)
Was already merged in Bitbucket before import, marked as merged by the import user
-
Add commands to project, history, and synchronize view context menus to facilitate shifting of changeset phases
In the Commit dialog, a "Commit in Secret Phase" checkbox has been added to enable committing with secret phase. This directly corresponds to using the --secret option for the hg commit command.
Note: This feature appears to be issuing the correct hg command, but for some reason the commit always gets created in draft phase when committing through MercurialEclipse. The commit command includes the --secret option, and running the same commit command on the command line correctly creates the commit in secret phase. It's not clear whether this is a problem with Mercurial, JavaHg, my Mercurial configuration, or some other factor. In any case, MercurialEclipse works around this issue by executing an extra phase command to manually put the commit into secret phase after the normal commit command completes (but only when the user ticks the "Commit in Secret Phase" checkbox).
In the project context menu, a new "Change Phase..." action has been added. This will open a new "Change Phase" dialog, which the user can use to select the new phase to use for the current changeset. The dialog also allows the user to optionally select a different changeset instead of using the currently checked-out one. Upon opening the dialog, the phase radio buttons will be initialized to reflect the current phase of the checked-out changeset.
In the History view, the context menu for a changeset now includes a "Change Phase" sub-menu with actions to shift the selected changeset between the three phases. The action corresponding to the changeset's current phase will appear selected (like a radio button) and disabled, so the user can select one of the other two actions to change the phase. This feature behaves very similarly to its counterpart in TortoiseHg. Also, upon refreshing the History page, the user's current selection will now be preserved (i.e. the same changesets will remain selected). This benefits phase change actions in addition to existing actions that already trigger history refreshes.
In the Synchronize view, the context menu for changesets now includes a "Change to Secret Phase" action. This will shift the selected changeset (and any of its descendants) into secret phase and remove them from the Synchronize view. They will not appear in the Synchronize view again unless they are shifted out of secret phase. At the moment, the only direct means to do this in MercurialEclipse is to use the phase change actions on the context menu for projects or history revisions, but this could also happen indirectly by any other action that changes phases (e.g. pulling changesets from remote repositories or using the hg command line to change the phase). Perhaps this could be improved in the future by adding a "Secret" changeset group to the Synchronize view, which would show the user all secret revisions and allow them to be easily shifted out of secret phase.
Fixes #614 (closed)
-
Add comments to clarify scope and usage of the ChangeSet types
Note: This changeset implements some internal cleanup only. No user-visible changes are expected.
-
Rename constant to fix typo
Constant name is now spelled correctly as PROJECT_DECORATIONS
Note: This changeset implements some internal cleanup only. No user-visible changes are expected.
-
Refactor PathAwareAction to extend AbstractMercurialSynchronizeAction
The updateSelection issue FIXME notes in PathAwareAction were previously duplicated in AbstractMercurialSynchronizeAction so every synchronize view action would not need to repeatedly handle and document the quirky updateSelection behavior. PathAwareAction now takes advantage of this and extends AbstractMercurialSynchronizeAction. As a result, the notes have been removed from PathAwareAction to reduce duplication.
Note: This changeset implements some internal cleanup only. No user-visible changes are expected.
-
Retrofit ChangesetTable with an enum (ColumnType) to describe the table columns
This enum will make it easier/clearer to properly add new columns to the table. No more delicate balancing of arrays and integer constants throughout the file - Adding a new column is now as simple as adding another constant to the enum and overriding the necessary abstract methods.
Also adjust to read "Tags" column header from messages.properties file.
Note: This changeset implements some internal cleanup only. No user-visible changes are expected.
-
Add Phase column to ChangesetTable
This table is used by various dialogs and views, including the Change Phase dialog. All of those dialogs/views benefit from this change.
The default width for the Summary column has also been reduced to maintain the same overall initial table width.
Refs #614 (closed)
-
Prompt user to confirm backwards phase transitions
If the user attempts to shift a changeset backwards from a higher phase (e.g. public) to a lower phase (e.g. draft, secret), then a dialog will be displayed requiring the user to confirm the request. The dialog will briefly summarize the impact and/or risks of performing a backwards phase transition. This is very similar to the behavior of TortoiseHg.
Also added an error message if the user ticks the "Select another changeset" checkbox in the phase dialog but does not select anything from the changeset table.
Refs #614 (closed)