PageRenderTime 18ms CodeModel.GetById 8ms app.highlight 3ms RepoModel.GetById 2ms app.codeStats 0ms

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