|
Changelog
=========
.. module:: changelog.dialog
:synopsis: Dialog used to view log
The changelog tool is primarily used to visualize the revision history
of your repository. It presents a graph of the revision history, showing
the parent/child relationship of each change. At each revision you can
view the files that were modified and the contents of those changes.
These are the features that nearly all revision history browsers provide.
The TortoiseHg changelog browser offers much more. Since it is our best
tool for viewing and selecting changesets, we use it to perform nearly
all our tasks that involve changeset manipulation.
.. figure:: figures/log.png
:alt: Changelog
Changelog viewer dialog
The toolbar buttons from left to right:
:guilabel:`Refresh`
Reload the revision history (if you commit in another window, etc)
:guilabel:`Filter`
Open revision filter dialog. The toolbar button also has
drop-down for common filters
:guilabel:`Datamine`
Open datamine application for history searches and file annotations
:guilabel:`Other Parent`
Toggles parent revision when viewing merge changesets
:guilabel:`Synchronize`
Opens synchronize tool to communicate changes with other repositories
Revision Graph Details
----------------------
The graph column shows the child-parent relationships between revisions
in your repository history. This column auto-sizes for as many lines of
ancestry that are required to visualize the revisions you have loaded.
The column does have a hard-limit width to prevent some degenerative
cases from breaking the viewer.
On the right of the revision graph are three buttons. From top to bottom
these are:
:guilabel:`column toggles`
toggle the display of columns in the graph
:guilabel:`next-N revisions`
load the next N revisions into the graph
:guilabel:`all revisions`
load all remaining revisions into the graph
The column visibility toggles are sticky settings.
Revision Context Menus
----------------------
Right-clicking on a revision in the (top) graph pane will bring up the
revision context menu.
:guilabel:`visualize change`
open this change in your visual diff tool
:guilabel:`display change`
open this changeset in the changeset browser (more below)
:guilabel:`diff to local`
display changes (visual diff) between this revision and your
current working directory
:guilabel:`update`
update your working directory to this revision [#rcm1]_
:guilabel:`merge with`
merge with this revision [#rcm2]_
:guilabel:`copy hash`
copy current revision's full hash to the clipboard
:guilabel:`export patch`
generate a patch file containing this revision's changes
:guilabel:`email patch`
send this revision's changes to email recipient [#rcm3]_
:guilabel:`bundle rev:tip`
create a bundle with all revs from selected to tip
:guilabel:`add/remove tag`
opens the TortoiseHg tag dialog with this revision selected
:guilabel:`backout`
create a backout changeset for selected revision
:guilabel:`revert`
revert working copy to this revision's contents, without
updating working directory parent revision. Use with care.
:guilabel:`strip`
Remove the selected revision and all of it's descendants from the
repository [#rcm4]_
If you right-click on a row other than the one that was currently
selected, you get a different context menu. This context menu has
commands that deal with arbitrary revision ranges.
:guilabel:`diff with selected`
Opens status viewer with cumulative changes of the range of
changesets.
:guilabel:`visual diff with selected` [#rcm5]_
Opens visual diff window with cumulative changes of the range
of changesets.
:guilabel:`email from here to selected`
Opens email dialog with range of changesets.
:guilabel:`bundle from here to selected`
Creates a bundle file with range of changesets.
:guilabel:`merge with selected` [#rcm6]_
Merges this revision with the current working directory parent
revision. This menu item is only sensitive when the working
parent is the current selected revision.
.. [#rcm1] Opens the TortoiseHg update/checkout dialog with this revision selected.
.. [#rcm2] Opens the TortoiseHg merge dialog with this revision selected.
.. [#rcm3] Opens the TortoiseHg email dialog with this revision selected.
.. [#rcm4] The strip command will store the stripped revisions in a bundle file
that can later be reapplied.
See `also <http://mercurial.selenic.com/wiki/EditingHistory>`_.
.. [#rcm5] :menuselection:`Global Settings --> TortoiseHg --> Visual Diff Command`
.. [#rcm6] Only sensitive if the selected revision is your current working
directory parent
Revision Filter Dialog
----------------------
.. figure:: figures/logfilter.jpg
:alt: Revision filter dialog
File Context Menus
------------------
Right-clicking on filenames in the file list (bottom left) pane will
bring up a context menu for the selected file:
:guilabel:`visual diff`
Open this revision of the file in your visual editor [#flcm1]_
:guilabel:`diff to local`
Visualize differences between this revision and your checked
out version
:guilabel:`save at revision`
Write this revision of the file to specified location
:guilabel:`file history`
Show revisions that modified this file [#flcm2]_
:guilabel:`annotate file`
Open this file in the datamine app, annotated at this revision
:guilabel:`revert file contents`
Checkout this specific revision of this file [#flcm3]_
.. [#flcm1] :menuselection:`Global Settings --> TortoiseHg --> Visual Editor`
.. [#flcm2] Does not show revisions where a file was deleted, as this is only a
manifest change, it does not modify the file's history.
.. [#flcm3] The new contents will appear as local changes and must be committed.
Changeset browser
-----------------
The changeset browser will only show a single file's diffs at a time, as
a performance optimization. If you would like to see all of the file
diffs at once, click on the :guilabel:`[All Files]` row. The changeset
browser will also skip displaying diffs for files which are above a
maximum limit. See
:menuselection:`Global Settings --> TortoiseHg --> Max Diff Size`
The changelog and datamine tools can open the changeset browser to view
a single revision or the combined effect of a range of revisions. The
changeset browser is very similar to the commit and shelve tools. It has
a file list on the left of all files that have been changed, and a diff
pane on the right with the changes to each file.
When opened in the 'diff change with' mode, you can select files and
hunks that you wish to extract from the changeset(s) you are browsing
and write them to a patch file using the :guilabel:`Save as` toolbar
button. This is a very efficient way to cherry pick changes from a
repository. This changeset browser also supports the :kbd:`Ctrl-C`
keyboard accelerator to copy hightlighted diff hunks to the clipboard.
Unfortunately, TortoiseHg still does not have a dialog for importing
changes into a repository, so this must be done on the command line with
the :command:`hg import` command.
Keyboard navigation
-------------------
:kbd:`Ctrl-P`
Zoom to the working directory parent revision
:kbd:`Ctrl-D`
Display visual diffs for selected changeset or file
Configurables
-------------
The changelog browser has a few configurable options that can be set in
the TortoiseHg Settings dialog on the Changelog tab.
:guilabel:`Author coloring`
If true, each author's changeset will be given a unique color
:guilabel:`Long Summary`
Concatenate commit message lines until 80 chars are reached
:guilabel:`Graph batch limit`
Number of revisions to read in each batch load
:guilabel:`Copy Hash`
Copy a revision's changeset id hash to the clipboard when selected
The exact colors given to particular users can be configured by adding
lines like these to your :file:`Mercurial.ini` file: ::
[tortoisehg]
authorcolor.USERNAME = color
The changelog browser also respects the following settings on the
TortoiseHg tab:
:guilabel:`Tab Width`
Number of spaces to expand tabs in diffs
:guilabel:`Max Diff Size`
Maximum size of file to be diffed
:guilabel:`Bottom Diffs`
Show diffs below file list
From command line
-----------------
The changelog viewer can be started from command line ::
hgtk log [OPTIONS] [FILE]
aliases: history
changelog viewer
options:
-l --limit limit number of changes displayed
use "hgtk -v help log" to show global options
.. vim: noet ts=4
|
Loading...