Clone wiki

thg-qt / Iteration02

Iteration 02



  • Add "Quick Commit" feature
    • with combo box allows you to select recently committed messages
  • Changed "Working Tree" to "Working Copy"
  • Put branch/label names to the head of revision summaries
  • Used bold font to parent revision of working copy


  • More good name for "Working Tree"
    • "Uncommitted Changes" is a bit long...

[Figure 2]


  • Put revision id in "Rev" column instead of patch name
  • Show applied patch name in a head of summary with blue background color
    • Unapplied patches are also shown in summary columns with gray background color
  • Extend "Quick Commit" to MQ: provides "QNew" and "QRefresh" drop-down menus

Commit integration

Supposing you have a repository like "A" in the figure "Mockup_01_01", log viewer adds a special revision named "Working Tree" when you change something in the working directory. This idea was brought from hgview. This way shows the parent revision of working directory very clearly.

If you select "Working Tree" row, changeset viewer shows details of changes in working directory. This means that "changeset viewer" and "status feature" are integrated to one component. Of course, you can execute various commands from here, such as "revert", "partial revert", "shelve", "qnew" ... etc.

After committing changes (figure "B"), log viewer adds a normal changeset instead of a special working tree revision and changes parent revision to committed changeset (figure "C").

The summary column of "Working Copy" row has a combo box which allows you to commit changes in working directory quickly. It has "Commit" button, but you can commit using a keyboard accelerator "Enter" (or "Ctrl+Enter). The combo box contains your recently committed messages, so you can commit them really quickly.

MQ integration

In here, you have 3 unapplied patches in MQ and uncommitted changes in working directory ("A" in figure "Mockup_01_02"). You create a new patch named "hogepatch" (hg qnew) using "QNew" drop-down menu of "Commit" button, and then do qpush. As a result, now you at "bug321.patch" patche (figure "B").

If you change something in working tree, you will get a special revision "Working Tree" again. Then if there is at least an applied patch in MQ, "Commit" button in "working copy" row is changed to "QRefresh" button. To create a new MQ patch, "QNew" drop-down menu is left on it.

This "Working Copy" changeset contains a diff between "bug321.patch" and working directory (figure "C"). This is helpful feature to check *real* changes from the last qrefreshed patch.