/doc/source/whatsnew.txt

https://bitbucket.org/tortoisehg/hgtk/ · Plain Text · 158 lines · 121 code · 37 blank · 0 comment · 0 complexity · 36d6d54e33c7cc13dcee14058042b01b MD5 · raw file

  1. Whats New
  2. =========
  3. .. module:: whatsnew.dialog
  4. :synopsis: New features in this release
  5. TortoiseHg 2.0
  6. ''''''''''''''
  7. Philosophy
  8. ----------
  9. The following philosophical changes were made between TortoiseHg 1.0 and
  10. TortoieHg 2.0
  11. Workbench
  12. ~~~~~~~~~
  13. We wanted a single 'TortoiseHg' application which can access nearly all
  14. TortoiseHg (and Mercurial) functionality and that could be launched by a
  15. desktop or start menu shortcut. So we developed the Workbench
  16. application.
  17. The Workbench can support multiple repositories open at a time via "Repo
  18. Tabs" across the top of the main window.
  19. Each repository tab supports multiple "Task Tabs" beneath its graph
  20. splitter. These task tabs are switchable via icons on the right side of
  21. the Workbench or via application menus. Available task tabs include a
  22. changeset browser, a commit tool, a manifest browser, a history search
  23. widget, and a sync widget.
  24. Also available are two dockable widgets - a *Repository Registry* which
  25. lists all known repositories on your local machine and an *Output Log
  26. Window* which displays running command lines and their output and can
  27. also function as a minimal shell.
  28. Showing Mercurial command lines
  29. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  30. In an effort to educate users on Mercurial's command interface, nearly
  31. all commands are executed in the log window, displaying the full command
  32. line and Mercurial's output (progress indication is provided by progress
  33. bars inside the Workbench status bar). The few tools that do not use a
  34. command log window will generally display the command line they execute.
  35. Resolve tool, deliberate merges
  36. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  37. TortoiseHg 2.0 introduces a resolve dialog for resolving conflicted
  38. file merges. It shows the users all the files that require resolution
  39. and those files that have been resolved, allowing merges to be verified.
  40. As supported by Mercurial's resolve command, individual file merges may
  41. be restarted as many times as necessary to get the merge correctly
  42. completed.
  43. By default, TortoiseHg will use the resolve dialog to resolve all
  44. conflicts, including trivial conflicts. It instructs Mercurial to never
  45. merge files automatically, deferring their resolution until the resolve
  46. dialog can be launched. This is true for merges, update commands that
  47. require content merges, rebases, and backouts.
  48. Shelve dropped, MQ improved
  49. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  50. TortoiseHg 2.0 does not include a shelve tool as 1.0 did. Instead, we
  51. have elevated MQ usability to cover the use cases where shelving was
  52. necessary (still a work in progress). This approach avoids a number of
  53. shelve issues, for instance its inability to shelve added or removed
  54. files.
  55. Revision Sets
  56. ~~~~~~~~~~~~~
  57. We have replaced the filter bar of the Repository Explorer with a
  58. revision set bar in the Workbench. Revision sets were introduced in
  59. Mercurial 1.6 and have been integrated with an increasing number of
  60. commands in each subsequent release. They are a powerful query language
  61. for finding and specifying revisions in your repository.
  62. The Workbench also includes a revision set editor which both teaches the
  63. user the available keywords and their arguments, and offers brace
  64. matching, auto-completions, and other editing ameneties.
  65. In TortoiseHg 2.0, incoming and outgoing changesets are visualized as
  66. revisions sets. In previous versions they were represented by graph
  67. annotations.
  68. Technology
  69. ----------
  70. Qt and PyQt
  71. ~~~~~~~~~~~
  72. TortoiseHg 2.0 has been a near rewrite of all of the tools and dialogs
  73. taking advantage of Nokia's excellent `Qt <http://qt.nokia.com/products/>`_
  74. UI framework and Riverbank Computing's fine
  75. `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_ Python
  76. bindings.
  77. QScintilla2
  78. ~~~~~~~~~~~
  79. TortoiseHg uses the `QScintilla2
  80. <http://www.riverbankcomputing.co.uk/static/Docs/QScintilla2/index.html>`_
  81. editing component extensively to:
  82. * display file contents and diffs with syntax highlighting
  83. * display annotations with syntax highlighting
  84. * edit commit messages with auto-completion of filenames and source symbols
  85. * edit revision set strings with brace matching and auto-completion
  86. One can configure the Qscintilla2 tab stops and white space visibility
  87. parameters using the settings tool.
  88. Polling of repository state and config
  89. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  90. The Workbench and other applications like the commit tool will poll
  91. repositories on your local machine to detect changes made to either the
  92. repository or their configuration files, and automatically update
  93. running applications as necessary. Nearly all configuration changes are
  94. effective immediately, with the notable exception of enabling or
  95. disabling Mercurial extensions. Changes to extension configuration
  96. generally require application restarts before they take effect.
  97. Immediate bug report dialogs
  98. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  99. Prior to TortoiseHg 2.0, bug reports were written to stderr as they
  100. occured and stderr was captured and scanned at exit to report those
  101. errors to the user. While we gained many valuable bug reports via this
  102. mechanism, there was rarely any context on what operations caused these
  103. bugs.
  104. In TortoiseHg 2.0, we have created a generic exception handler that
  105. catches all Python exceptions that are otherwise unhandled by
  106. application code. This allows us to display exception tracebacks almost
  107. immediately after they occur (after a short timeout to collect
  108. consecutive exceptions together). The hope is that future bug reports
  109. will contain better reproduction instructions, or at least context for
  110. the tracebacks.
  111. Demand loaded graph
  112. ~~~~~~~~~~~~~~~~~~~
  113. To keep refreshes as effecient as possible, the graphing algorithm will
  114. only load a couple hundred revisions initially during a refresh, and
  115. then load further revisions only when those revisions are required to be
  116. displayed. You will notice scrolling through the graph is jerky, these
  117. are bulk loads of revisions into the graph. To avoid this jerkiness you
  118. can force TortoiseHg to load all revisions in the graph via the 'Load
  119. All' toolbar button or jump directly to the earliest revision you wish
  120. to view (SHIFT-CTRL-G).
  121. .. vim: noet ts=4 syntax=rest