by
Changes to 44 files · Browse files at 888b8a88301d Showing diff from parent 9e815f5a66cf ab18f41b523d Diff from another changeset...
@@ -2,5 +2,4 @@ include contrib/_hgtk
include contrib/nautilus-thg.py
include COPYING.txt ReleaseNotes.txt
-recursive-include locale *.mo
recursive-include i18n *.po
|
@@ -1,3 +1,5 @@ + # -*- coding: UTF-8 -*-
+
Release Notes for TortoiseHg
This file contains last minute notes to users about the releases, which may not
@@ -355,7 +357,7 @@ * [ 2103749 ] Changelog viewer doesn't refresh after making local tag
* nautilus: fix error when there is no repo in the current directory
- (by Germ�n P�o-Caama�o)
+ (by Germán Póo-Caamaño)
New features and improvement in 0.4.1:
|
@@ -1,7 +1,7 @@ [py2exe]
excludes=pywin, pywin.dialogs, pywin.dialogs.list, PyQt, PyQt4.QtCode, PyQt4.QtGui
includes=cairo, pango, pangocairo, atk, gobject, dbhash, gtk.keysyms
-packages=ctypes, email, hgext, hgext.convert, encodings, hggtk, hggtk.logview, thgutil, thgutil.iniparse
+packages=ctypes, email, hgext, hgext.convert, encodings, hggtk, hggtk.logview, thgutil, iniparse
dll_excludes=iconv.dll, intl.dll, libatk-1.0-0.dll, libgdk_pixbuf-2.0-0.dll, libgdk-win32-2.0-0.dll, libglib-2.0-0.dll, libgmodule-2.0-0.dll, libgobject-2.0-0.dll, libgthread-2.0-0.dll, libgtk-win32-2.0-0.dll, libpango-1.0-0.dll, libpangowin32-1.0-0.dll, libcairo-2.dll, libglade-2.0-0.dll, libpangocairo-1.0-0.dll, libpangoft2-1.0-0.dll
|
|
@@ -0,0 +1,75 @@ + @echo off
+
+set hhc_compiler="%ProgramFiles%\HTML Help Workshop\hhc.exe"
+set PDFLATEX=PdfLatex
+set OUTPUTDIR=build
+set SPHINXBUILD=sphinx-build
+set ALLSPHINXOPTS=-d %OUTPUTDIR%/doctrees %SPHINXOPTS% source
+if NOT "%PAPER%" == "" (
+ set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+)
+
+if "%1" == "" goto help
+
+if "%1" == "help" (
+ :help
+ echo.Please use `make ^<target^>` where ^<target^> is one of
+ echo. html to make standalone HTML files
+ echo. htmlhelp to make HTML files and a HTML help project
+ echo. chm to make CHM file
+ echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
+ echo. pdf to make PDF file, you can set PAPER=a4 or PAPER=letter
+ goto end
+)
+
+if "%1" == "clean" (
+ for /d %%i in (%OUTPUTDIR%\*) do rmdir /q /s %%i
+ del /q /s %OUTPUTDIR%\*
+ goto end
+)
+
+if "%1" == "html" (
+ %SPHINXBUILD% -b html %ALLSPHINXOPTS% %OUTPUTDIR%/html
+ echo.
+ echo.Build finished. The HTML pages are in %OUTPUTDIR%/html.
+ goto end
+)
+
+if "%1" == "htmlhelp" (
+ %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %OUTPUTDIR%/htmlhelp
+ echo.
+ echo.Build finished; now you can run HTML Help Workshop with the ^
+.hhp project file in %OUTPUTDIR%/htmlhelp.
+ goto end
+)
+
+if "%1" == "chm" (
+ %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %OUTPUTDIR%/chm
+ %hhc_compiler% %OUTPUTDIR%/chm/TortoiseHGdoc.hhp
+ echo.
+ echo.Build finished. The CHM file is in %OUTPUTDIR%/chm.
+ goto end
+)
+
+if "%1" == "latex" (
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %OUTPUTDIR%/latex
+ echo.
+ echo.Build finished; the LaTeX files are in %OUTPUTDIR%/latex.
+ goto end
+)
+
+if "%1" == "pdf" (
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %OUTPUTDIR%/pdf
+ pushd .
+ cd %OUTPUTDIR%\pdf
+ %PDFLATEX% TortoiseHG.tex
+ popd
+ echo.
+ echo.Build finished; the PDF file is in %OUTPUTDIR%/pdf.
+ goto end
+)
+
+:end
+
+
+
|
|
@@ -0,0 +1,75 @@ + # Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
+
+.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " changes to make an overview over all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+
+clean:
+ -rm -rf build/*
+
+html:
+ mkdir -p build/html build/doctrees
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html
+ @echo
+ @echo "Build finished. The HTML pages are in build/html."
+
+pickle:
+ mkdir -p build/pickle build/doctrees
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+web: pickle
+
+json:
+ mkdir -p build/json build/doctrees
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ mkdir -p build/htmlhelp build/doctrees
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in build/htmlhelp."
+
+latex:
+ mkdir -p build/latex build/doctrees
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in build/latex."
+ @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
+ "run these through (pdf)latex."
+
+changes:
+ mkdir -p build/changes build/doctrees
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes
+ @echo
+ @echo "The overview file is in build/changes."
+
+linkcheck:
+ mkdir -p build/linkcheck build/doctrees
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in build/linkcheck/output.txt."
|
|
@@ -0,0 +1,22 @@ + TortoiseHg Documentation
+
+To build this documentation you need sphinx installed. On Ubuntu this
+is the python-sphinx package. On Windows your best bet is
+easy_install.
+
+To build PDF files you need latex packages. On Ubuntu this is
+texlive-latex-extra and all of it's dependencies. On Windows the best
+choice is miktex.
+
+Once all of the prerequisites are in place, you can use the makefile to
+build targets: html htmlhelp latex
+
+Once latex is built, you have to cd into that output directory and run
+make all-pdf to build the actual PDF file.
+
+Once htmlhelp is built, you have to run the actual help compiler on a
+Windows machine.
+
+On Windows, if you have no make tool you can use build.bat. If HTML
+compiler and miktex are installed you can directly generate chm
+(build chm) and pdf (build pdf).
|
|
@@ -0,0 +1,6 @@ + Needs an Intro page explaining TortoiseHg and it's ports. Include links
+Changelog needs much more detail
+Commit needs more detail, including ignore and guess dialogs
+Add links to BB wiki and Mercurial wiki
+Describe path editing and [auth] hgrc section
+Need a page explaining merges and merge undo
|
|
|
@@ -0,0 +1,189 @@ + ===========================
+TortoiseHg Changelog Viewer
+===========================
+
+.. module:: changelog.dialog
+ :synopsis: Dialog used to view log
+
+.. 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, also has drop-down for common filters
+:guilabel:`Datamine`
+ Open datamine application for history searches and file annotations
+:guilabel:`Other Parent`
+ Only active when viewing merge changesets, toggles parents
+:guilabel:`Synchronize`
+ Communicate changes with other repositories
+
+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 it modified and the contents of those changes. These
+are the obvious features that a revision history browser provides.
+
+This changelog browser offers much more.
+
+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
+
+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 [1]
+:guilabel:`merge with`
+ merge with this revision [2]
+:guilabel:`copy hash`
+ copy current revision's full hash to the clipboard
+:guilabel:`export patch`
+ generate a patch file of this revision's changes
+:guilabel:`email patch`
+ send this revision's changes to email recipient [3]
+: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 [4]
+
+
+If you right-click on a row other than the one that was currently selected, you get a different context menu.
+This one is for visualizing diffs between two arbitrary revisions.
+
+:guilabel:`diff with selected`
+ Description
+:guilabel:`visual diff with selected` [5]
+ Description
+:guilabel:`email from here to selected`
+ Description
+:guilabel:`bundle from here to selected`
+ Description
+:guilabel:`merge with selected` [6]
+ Description
+
+1) Opens the TortoiseHg update/checkout dialog with this revision selected.
+2) Opens the TortoiseHg merge dialog with this revision selected.
+3) Opens the TortoiseHg email dialog with this revision selected.
+4) The strip command will store the stripped revisions in a bundle file
+ that can later be reapplied. See also_
+5) :menuselection:`Settings --> Global --> TortoiseHg --> Visual Diff Command`
+6) Only sensitive if the selected revision is your current working
+ directory parent
+
+.. _also: http://www.selenic.com/mercurial/wiki/index.cgi/EditingHistory
+
+
+File List 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[1]
+: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 [2]
+: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 [3]
+
+1) :menuselection:`Settings --> Global --> TortoiseHg --> Visual Editor`
+2) Does not show revisions where a file was deleted, as this is only a
+ manifest change, it does not modify the file's history.
+3) The new contents will appear as local changes and must be committed.
+
+
+Changeset browser
+-----------------
+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.
+
+In release 0.7 of TortoiseHg, the 'diff change with' changeset browser
+now supports change selection. 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 made to a repository.
+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.
+
+This changeset browser also supports the :kbd:`CTRL-C` keyboard
+accelerator to copy hightlighted diff hunks to the clipboard.
+
+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
|
|
|
@@ -0,0 +1,320 @@ + ======================
+TortoiseHg Commit Tool
+======================
+
+.. module:: commit.dialog
+ :synopsis: Dialog used to perform commit
+
+.. warning::
+ The win32text extension can cause trouble with hunk selection. This
+ has been resolved in Mercurial 1.3 and TortoiseHg 0.8, but requires
+ proper configuration. See `issue #82 <http://bitbucket.org/tortoisehg/stable/issue/82/>`_.
+
+
+The commit tool is an important part of TortoiseHG. It is, in fact, the
+only component that is launchable from the first level of the context
+menu. This is mainly because it is the most heavily used tool. Not only
+can you commit your changes, but you can examine the state of your
+working directory and perform most routine maintenance tasks (add new
+files, record renames, manage the repository ignore filter, etc).
+
+.. figure:: figures/commit.png
+ :alt: Commit dialog
+
+ Commit dialog
+
+Features
+--------
+
+Walking across the toolbar, the buttons perform the following tasks:
+
+:guilabel:`Refresh`
+ Reload the state of the working directory. It tries to retain file
+ check and selection state across refresh, but not hunks.
+:guilabel:`Commit`
+ Commit selected diffs in checked files.
+:guilabel:`Undo`
+ Undo (rollback) last immediate commit. Your commit message will be
+ available in the message history, so you can re-do the commit after
+ fixing whatever problem you noticed.
+:guilabel:`Revert`
+ Revert checked files to last revisioned state.
+:guilabel:`Add`
+ Add checked files that were in unknown '?' state. These files will
+ then be versioned as soon as they are committed.
+:guilabel:`Move`
+ Move checked files to specified target directory. This move is done
+ with Mercurial's full knowledge.
+:guilabel:`Remove`
+ Delete checked unversioned files and/or remove (mark as deleted) any
+ versioned files.
+
+Below the toolbar are two other useful widgets:
+
+:guilabel:`Branch name`
+ Shows the current branch name of the working directory. Normally
+ this is informational only, but you can create (open) a new branch
+ by changing this name before making a commit. Do not use this
+ feature unless you understand Mercurial's named branches.
+:guilabel:`Recent Commit Messages`
+ A drop-down list of the 10 most recent commit messages. The behavior
+ of this drop-down has been tweaked in 0.7, and should behave
+ naturally.
+:guilabel:`Patch name`
+ If you have enabled the MQ extension, there will also be a text
+ entry for a new patch name. Entering a name here will switch the
+ commit tool into 'QNew' mode where the working directory changes
+ will be applied to a new patch.
+
+Below the file list are checkboxes that toggle the inclusion of the
+various classes of files {modified, added, removed, deleted, unknown,
+clean, ignored}.
+
+Removed means a revisioned file has been marked as removed. Deleted
+means a revisioned file is missing but Mercurial has not been told to
+quit tracking that file. For instance, if you rename a revisioned file
+in the explorer, the original filename will show up as deleted and the
+new filename will show up as unknown. By right-clicking on the new
+filename you can bring up the rename guessing dialog which can discover
+the rename by comparing file contents and mark the old file as removed
+and the new file as added while recording the whole operation as a
+rename.
+
+Change Selection (record)
+-------------------------
+
+So what does that mean when it says the commit button will commit the
+selected diffs in checked files? Simple, the native TortoiseHg commit
+tool supports change selection instrinsically in the diff browser. This
+means that all of the changes you make to versioned files can be
+individually selected to be included in the commit or left out of the
+commit (but left in the working directory). Fans of darcs or
+Mercurial's record extension will recognize this immediately.
+
+When is this necessary?
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Most often, it is when you have made more than a single coherent change
+to your source code and you would like to commit your changes piecemeal.
+This can often be accomplished by filtering the list of files in each
+commit, but there will be times when your changes intermingle in the
+same set of files and that's when this change selection feature becomes
+indespensable.
+
+How does it work?
+~~~~~~~~~~~~~~~~~
+
+By double-clicking on individual change hunks in the diff panel.
+*Technically, any action which activates a change hunk row will toggle
+it's selection status. The spacebar will also work.* When a hunk is
+unselected, the syntax highlighting of the diff is disabled and the
+background is turned gray. At the same time, the file's diff header is
+updated to show the current selection state, the selected hunk count and
+changed lines will be updated. Toggle the hunk a second time to reselect
+it for inclusion in your commit.
+
+When a file is partially selected for commit, it's icon is changed from
+a checkbox to a radio button. At a glance at the file list, you should
+be able to find which files are entirely included in the commit,
+partially included, or excluded entirely.
+
+What happens at commit time?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The short answer is that the selected files and hunks are committed to
+the repository and the unselected changes are left in your working
+directory for the next commit.
+
+The long answer is a little more complicated. What happens behind the
+scenes is that the files which are partially selected are backed up in a
+safe location, reverted to their last revisioned state, have their
+selected change hunks applied back to them, committed, and then finally
+recovered from backup (thus placing the rejected change hunks back into
+the working copy).
+
+For files which are not partially selected, the commit operation avoids
+the entire *backup, revert, patch, commit, recover* round trip and
+simply commits those files in place.
+
+This longer answer is only interesting when something goes wrong, which
+on Windows unfortunately has a probability greater than 0. If some
+program (virus checker, compiler) locks your file in the middle of this
+process you may see an error about a failed patch. These errors are
+recoverable, simply delete any new :file:`.rej` files and try the commit again.
+
+
+
+Keyboard navigation
+-------------------
+
+:kbd:`CTRL-ENTER`
+ will trigger the commit
+:kbd:`CTRL-C`
+ In the diff panel will copy the currently highlighted (not selected,
+ but highlighted) diff hunks to the clipboard. These can be pasted
+ into a text buffer to generate any arbitrary patch based from the
+ changes in your working directory.
+
+The code which copies the hunks to the clipboard is intelligent about
+diff headers. If your highlighted list includes a hunk from a file but
+not it's file diff header, the diff header will be added to the
+clipboard in the appropriate location in the stream to make the
+clipboard contents always be a valid patch.
+
+
+File Context Menus
+------------------
+
+By right clicking on files in the file list, you will get a context menu
+of commands that are applicable to the selected file. If you configure a
+visual editor in :menuselection:`Settings --> Global --> TortoiseHg --> Visual Editor`
+there will be an option to open the file in your editor. For unknown **?**
+files, the context menu will allow you to detect renames (if you think
+the unknown file was a copy or rename of a revisioned file) or configure
+the repository's ignore filter (if the file should never be revisioned
+and you want Mercurial to ignore it).
+
+
+Merges
+------
+
+The commit tool has a special mode when it is opened in a repository
+that is in a merged state (technically, this means the current working
+directory has two parent revisions). The file list has no checkboxes and
+the diff pane does not allow selections. The commit 'manifest' is
+essentially immutable, you must commit the entire working directory
+after a merge.
+
+The merge state *ms* column is especially useful in this mode. Files
+that are marked with *R* are files where Mercurial and/or the user have
+successfully merged (resolved) changes from both branches. Files that
+are marked with *U* have unresolved changes. You can use the *resolve*
+context menu option to restart the merge for that file, or you can use
+the *edit* context menu option to resolve the conflict by hand. When the
+conflict has been resolved, you use the *mark resolved* context menu
+option, which changes the file's merge state to *R*.
+
+Mercurial will not allow you to commit a merge if any files have
+unresolved *U* merge states.
+
+For your reference, *local* is the revision you had checked out when you
+started the merge and *other* is the revision you merged with.
+
+
+Commit Message Format
+---------------------
+
+If your project has guidelines for commit message format, you can
+configure those in the settings tool. Once configured, the commit tool
+will inform you if you try to commit with a non-conforming message.
+There is also an :guilabel:`apply format` context menu option available
+on the commit message pane that will try to enforce your policy.
+
+MQ patches
+----------
+
+Many advanced Mercurial users use the MQ extension to manage a patch
+queue. TortoiseHg does not offer much in the way of support for MQ, but
+the commit tool will at least recognize when a patch is applied. When a
+patch is applied, the usual commit command will not work, so the commit
+tool enters *patch refresh* mode. The title bar will say "refreshing
+patch *patchname*" and the patch comment will appear in the commit
+message pane.
+
+The commit tool will present the entire contents of the top patch
+including any changes that are in your working directory (un-refreshed
+changes). This is essentially what the qdiff command would show you.
+There is, in fact, no way to get just the working copy diffs beyond
+running :command:`hg diff` on the command line. The reason the dialog
+operates in this mode is that it allow you to use the integrated change
+selection features to move changes into or out of the top patch. You can
+move entire files or single changes in or out of the patch.
+
+The :guilabel:`commit` button, which has been renamed :guilabel:`qrefresh`
+in this context, it will refresh the top patch with just the changes you
+have selected (including the patch description). This may be a bit confusing at first
+because the changes you leave out of the patch are still going to be in
+the working directory after the refresh, so it will look like nothing
+has changed.
+
+So, in summary, using MQ with TortoiseHg is still almost entirely a
+command line operation, but you can use :command:`hgtk ci` to refresh your
+patches and take advantage of our excellent change selection support.
+
+
+Configurables
+-------------
+
+:menuselection:`Commit --> Username`
+ Sets username associated with your commits
+:menuselection:`Commit --> External Tool`
+ Allows you to select Qct as the your commit tool [DEPRECATED]
+:menuselection:`Commit --> Summary Line Length`
+ Configures a 'policy' limit for summary lines
+:menuselection:`Commit --> Message Line Length`
+ Configures a 'policy' limit for message lines
+:menuselection:`Commit --> Bottom Diffs`
+ Toggles diff pane from left to below file list
+:menuselection:`TortoiseHg --> Max Diff Size`
+ Configures the diff size limit
+
+External tool configuration is deprecated and will be removed in 0.9
+
+Changes since 0.7
+-----------------
+
+* The :guilabel:`Show Diff` button has been removed. Diffs are always shown.
+* The commit tool no longer shows all diffs at startup. Only the first
+ currently selected file is shown.
+* Added support for closing a named branch
+* The commit tool is now launchable from the merge dialog
+* The message pane context menu now has options for inserting selected
+ filenames, and configuring/applying a layout format.
+* :guilabel:`Ctrl-O` keyboard accelerator for triggering commit has been replaced with
+ :guilabel:`CTRL-Enter` accelerator which is common to many THG dialogs
+* Support for two-parent state (merging) has been improved, especially
+ the file context menus.
+* There is now a limit on the size of files that will be diffed by the commit
+ and changelog tools. Files above this size will simply show a message
+ indicating why the file was not diffed. This limit (default: 1MB) is
+ configurable (per-repository if necessary) via the settings dialog
+ :menuselection:`TortoiseHg --> Max Diff Size`.
+* You can specify the commiter and date via the command line: see
+ :command:`hgtk commit -h` for details
+* The :file:`qct.py` extension file is no longer bundled. It must be
+ downloaded separately if you wish to use Qct.
+
+
+Changes since 0.6
+-----------------
+
+Large changes were made to the commit tool in the 0.7 release. The
+previous default tool, Qct, was unbundled and TortoiseHg's native commit
+tool was promoted to the top spot. See the `FAQ <http://bitbucket.org/tortoisehg/stable/wiki/FAQ#tortoisehg-faq>`_
+for instructions on recovering Qct, if you must, but we suggest you first
+read the rest of this page to understand how the native tool now measures up.
+
+The default layout of the native commit tool is different than Qct. The
+file list is on the left side of the diff panel. This layout is actually
+configurable if you prefer the Qct layout, simply set the
+:menuselection:`Commit --> Bottom Diffs` configuration item to :guilabel:`True`
+in the TortoiseHg settings dialog. This change will take affect the next time
+you start the commit tool.
+
+Also different in the native commit tool is that all the diffs in the
+working directory are shown in the diff panel at startup. Selecting
+files in the file list will zoom to that file's diffs in the diff panel.
+In Qct, selecting a file would refresh the diff pane with just that
+file's diffs (which was also the behavior of the native tool before
+0.7). The new behavior gives a better view of what the changeset being
+committed will look like (it matches more closely to the changelog
+view).
+
+New in the native commit tool in 0.7 is the auto-checking of
+*M* odified, *A* dded, and *R* emoved files at startup as these are
+all change types that are automatically included in any :command:`hg commit`
+command with no arguments. Similarly, unknown *?* files are shown by
+default at startup since that is standard behaviour for the :command:`hg status`
+command. Qct was already doing both of these things, so this
+will come as no surprise to Qct users.
+
|
|
@@ -0,0 +1,97 @@ + ===============
+Common Features
+===============
+
+.. module:: common.dialog
+ :synopsis: Common features to all the dialog
+
+These features are commonly available in many TortoiseHg tools, so we
+document them here just once.
+
+Geometry Restore
+================
+
+Our primary applications like commit, changelog, and datamine, will
+restore their geometry and position from the last time they were run.
+This includes maximization.
+
+If the state to be restored does not fit within your current screen
+dimensions, the application will revert to factory default dimensions.
+
+The TortoiseHg dialogs which are more transitory in nature (clone, init,
+synch, update, merge) simply allow the window manager to place them
+where it wishes.
+
+Keyboard Accelerators
+=====================
+
+We define a few keyboard accelerators that all of the TortoiseHg tools support.
+
+:kbd:`CTRL-Q`
+ quit the application, including all open windows
+
+:kbd:`CTRL-W`
+ close the current window (same as :kbd:`CTRL-Q` if only one window is open)
+
+:kbd:`CTRL-D`
+ visual diff of currently selected file or changeset
+
+:kbd:`CTRL-ENTER`
+ activation
+
+:kbd:`F5`
+ refresh
+
+On `Mac OS X <http://bitbucket.org/tortoisehg/stable/wiki/MacOSX>`_, the apple
+(command) key is used as the modifier instead of :kbd:`CTRL`. However some
+keyboard accelerators are internal to GTK+ so you must use the control key to
+access cut-paste functionality, for instance.
+
+Visual Diffs
+============
+
+0.8 introduced a visual diff dialog that solves four usability issues:
+
+1) The ability to select visual diff tools for individual files
+2) Allows you to use visual diff tools that fork backround processes
+3) Allows you to use visual diff tools that do not support directory diffs
+4) Provides feedback when no files were modified
+
+If you prefer the previous (<=0.7) behavior of directly launching your
+visual diff tool, then you can recover that behavior via the user
+settings dialog and :menuselection:`TortoiseHg --> Skip Diff Window`.
+
+Treeview searches
+=================
+
+Many TortoiseHg dialogs use treeviews to present lists of data to the
+user. The file lists in the status, commit, shelve, and changelog tools
+are treeviews. The changelog graph pane is a treeview. And even the
+annotate pane in the datamine tool is a treeview.
+
+Most of the TortoiseHg treeviews (as of release 0.8) are configured for
+live searches. You simply ensure that the treeview has focus (by
+clicking on a row), then begin typing. A small entry window will appear
+with the text you have typed and the treeview will immediately jump to
+the first row that matches the text you have entered thus far. As you
+enter more keys, it refines it's search.
+
+* :kbd:`CTRL-F` will bring up the search window explicitly
+* :kbd:`CTRL-G` will advance the search to the next match,
+* :kbd:`SHIFT-CTRL-G` goes backwards
+* The mouse scroll wheel will advance forwards and backwards through matching lines
+
+HG command dialog
+=================
+
+Many TortoiseHg tools use the *hgcmd* dialog to run Mercurial commands
+that could potentially be interactive. In release 0.8, this dialog was
+changed to draw all error messages in a dark red color to give it more
+contrast with normal output messages.
+
+The window also properly focuses its :guilabel:`close` button when the
+command has completed, so a simple :kbd:`Enter` is that that is required
+to close the window.
+
+*hgcmd* also responds appropriately to the global :kbd:`CTRL-W` and
+more drastic :kbd:`CTRL-Q` accelerators.
|
|
|
@@ -0,0 +1,190 @@ + # -*- coding: utf-8 -*-
+#
+# TortoiseHg documentation build configuration file, created by
+# sphinx-quickstart on Tue Jul 21 23:42:44 2009.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# The contents of this file are pickled, so don't put values in the namespace
+# that aren't pickleable (module imports are okay, they're removed automatically).
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If your extensions (or modules documented by autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.append(os.path.abspath('.'))
+
+# General configuration
+# ---------------------
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sphinx.ext.autodoc']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['.templates']
+
+# The suffix of source filenames.
+source_suffix = '.txt'
+
+# The encoding of source files.
+#source_encoding = 'utf-8'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'TortoiseHg'
+copyright = u'2009, Steve Borho and others'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '0.8'
+# The full version, including alpha/beta/rc tags.
+release = '0.8.1'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of documents that shouldn't be included in the build.
+#unused_docs = []
+
+# List of directories, relative to source directory, that shouldn't be searched
+# for source files.
+exclude_trees = []
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+
+# Options for HTML output
+# -----------------------
+
+# The style sheet to use for HTML and HTML Help pages. A file of that name
+# must exist either in Sphinx' static/ path, or in one of the custom paths
+# given in html_static_path.
+html_style = 'default.css'
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+html_logo = 'figures/thg_logo_92x50.png'
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['.static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_use_modindex = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, the reST sources are included in the HTML build as _sources/<name>.
+#html_copy_source = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = ''
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'TortoiseHgdoc'
+
+
+# Options for LaTeX output
+# ------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, document class [howto/manual]).
+latex_documents = [
+ ('index', 'TortoiseHg.tex', ur'TortoiseHg Documentation',
+ ur'Steve Borho and others', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+latex_logo = 'figures/thg_logo_pdf.png'
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+latex_appendices = ['faq']
+
+# If false, no module index is generated.
+#latex_use_modindex = True
|
|
|
@@ -0,0 +1,104 @@ + ===================
+TortoiseHg Datamine
+===================
+
+.. module:: datamine.dialog
+ :synopsis: Dialog used to search in the history
+
+The datamine application is used to inspect the revision history of your
+repository. It is a tabbed application that supports two tab types,
+*Search* and *Annotate*.
+
+
+Search Tabs
+-----------
+
+.. figure:: figures/search.png
+ :alt: Search dialog
+
+ Search dialog
+
+The search tab is used to search (*grep*) through your entire revision
+history for keywords, variable names, functions, etc...
+
+The text entry fields have these purposes:
+
+*regexp*
+ this is where you enter your regular expression search criteria.
+*includes*
+ a comma separated list of paths to include in your search. If no
+ paths are given, the search is assumed to be repository wide. In
+ other words, specifying an include path actually narrows the search
+ criteria.
+*excludes*
+ a comma separated list of paths to exclude from your search.
+ Exclusion patterns are applied after inclusion patterns.
+
+The toggle buttons below the entry fields are for:
+
+:guilabel:`Follow copies and renames`
+ follow searches through copies and renames out of inclusion filters
+:guilabel:`Ignore case`
+ Perform the search without case considerations
+:guilabel:`Show line numbers`
+ Show line numbers at the front of the matching lines
+:guilabel:`Show all matching revisions`
+ Show every instance where the search criteria matches in a file, not
+ just the most recent revision. It shows +/- to indicate whether the
+ change adds or removes your search text.
+
+
+Search tabs are named after the search string most recently used to
+start a search. The :guilabel:`New Search` toolbar button will obviously open a
+new search tab while the :guilabel:`Stop` button will terminate an ongoing search
+(the :guilabel:`Stop` button is only sensitive when a search is in progress).
+
+Matches
+-------
+
+Each match will be a link to a changeset and will have a descriptive
+tooltip (author, date/time, summary). Right clicking on a matched line
+will bring up a context menu with these features:
+
+:guilabel:`display change`
+ open a changeset window with this changeset, to see the full context
+:guilabel:`annotate file`
+ open an annotation tab for this file at this revision
+:guilabel:`file history`
+ open a changelog window with this file's revision history
+
+Annotate Tabs
+-------------
+
+.. figure:: figures/annotate.png
+ :alt: Annotate tabs
+
+ Annotate tabs
+
+
+The revision graph has a simple context menu for opening the entire
+changeset in the changeset browser. Activating a row in the revision
+graph updates the file annotation to that revision.
+
+In the bottom pane is the actual annotation. Each line in the annotation
+is also a link to the changeset which provided that line. Activating a
+row will open that changeset in the changeset browser.
+
+The color scheme in the annotation pane is two tier. Authors are
+determined by hue, and age is determined by saturation. The older a
+change is, the lighter the color becomes.
+
+By right-clicking on the annotate pane's column headers (Line, Rev,
+Source) you can bring up a menu for showing two optional columns:
+:guilabel:`filename` and :guilabel:`user`.
+
+Configurables
+~~~~~~~~~~~~~
+
+The annotate tabs support the following configurations defined primarily
+for other tools:
+
+:menuselection:`Changelog --> Author Coloring`
+ Give each author a separate color in the changelog graph
+:menuselection:`TortoiseHg --> Tab width`
+ Number of spaces to expand tabs in diffs and annotate output
|
|
@@ -0,0 +1,69 @@ + ============================
+Windows Explorer Integration
+============================
+
+.. module:: explorer
+ :synopsis: Windows explorer integration
+
+Overlay Icons
+-------------
+TortoiseHg provides visual representation of the file status via overlay
+icons in the MS-Explorer windows. This is similar to those that found on
+other Tortoise client, such as TortoiseCVS and TortoiseSVN.
+
+Beginning from TortoiseHg version 0.5, the overlay icons are shared with
+TortoiseSVN (version 1.5.x or later) via the support of TortoiseOverlays
+(another project created by TortoiseSVN team).
+
+.. figure:: figures/overlayicons.png
+ :alt: Overlay icons
+
+ Overlay icons in Icons view (this image shows release 0.7 overlays)
+
+In release 0.8, we added an :guilabel:`Update Icons` context menu option
+which forces TortoiseHg to refresh the icons in the currently browsed
+repository or directory of repositories. The taskbar icon will turn
+green and the directory icons will turn into question marks while this
+refresh is in progress.
+
+Performance Issues
+------------------
+When the repository being viewed contains a large number of folders or
+files, the overlay icons may appear case a perceivable delay in
+displaying/refreshing the windows explorer. In most cases, the delay is
+more prominent when the first time the repositories are viewed.
+Subsequently the caching of the file system usually helps to reduce the
+delay rather significantly.
+
+The delay may also be felt on repositories located on network drives or
+other slower media.
+
+In 0.8, the new C++ shell extension is an order of magnitude faster than
+the Python extension used in previous releases, but we still make the
+overlays configurable via the taskbar menu. Simply click on the
+Mercurial (droplet) icon in the system tray and select :guilabel:`Options`.
+In the options dialog you can disable overlays globally, or enable them for
+local disks only.
+
+Context Menus
+-------------
+
+The TortoiseHg commands (GUI window & dialogs) may be accessed via the
+context menu of Explorer windows. The TortoiseHg context menu is
+context sensitive, which varies according to the folder being viewed.
+
+.. figure:: figures/contextmenu.png
+ :alt: Context menu
+
+ Context menu for a folder under Mercurial revision control (version 0.7)
+
+Currently TortoiseHg provides only the most regularly used Mercurial
+commands, hence the less frequently used, or newly add, Mercurial
+commands may still need be accessed on the CLI (command line interface)
+through the :file:`cmd.exe` windows.
+
+In 0.8, the new C++ shell extension makes the context menu somewhat
+configurable via the taskbar menu. Simply click on the Mercurial
+(droplet) icon in the system tray and select :guilabel:`Options`.
+In the options dialog you can promote individual menu options to
+the top menu.
|
|
|
@@ -0,0 +1,205 @@ + ==============
+TortoiseHg FAQ
+==============
+
+
+*What is TortoiseHg?*
+ A Windows shell extension for the Mercurial revision control system, similar to the Tortoise
+ clients for Subversion and CVS. It also includes an hgtk application for command line
+ use on many platforms.
+
+*What comes included in the TortoiseHg binary installer for Windows?*
+ `Mercurial <http://www.selenic.com/mercurial/wiki/index.cgi>`_, `kdiff3 <http://kdiff3.sourceforge.net/>`_,
+ `TortoisePlink <http://www.chiark.greenend.org.uk/%7Esgtatham/putty/>`_ and and one bonus extension: hgfold.
+
+*How can I get translations for the Explorer context menu?*
+ See the `Download <http://bitbucket.org/tortoisehg/stable/wiki/install>`_ wiki page
+
+*How do I do merges and arbitrary version checkouts in 0.8?*
+ Merges and updates intended to be done from within the Changelog tool (:guilabel:`View Changelog` menu option)
+ in 0.8.
+
+*How do I fix* ``failed to import extension hgext.hgconfig...`` *warnings?*
+ Upgrading to release 0.7.2 or later should fix these warnings, but there are further complications on Vista.
+ See `issue #135 <http://bitbucket.org/tortoisehg/stable/issue/135/>`_.
+
+*Why can't I connect to an ssh server (TortoisePlink.exe* ``...cannot execute specified...`` *error message)?*
+ Release 0.7.2 and later include a version of TortoisePlink that does not have extra library
+ dependencies, so upgrading will probably fix this problem. See also `ssh <http://bitbucket.org/tortoisehg/stable/wiki/ssh>`_.
+
+*How can I use Qct with TortoiseHG, after version 0.7?*
+ We recommend that you try the commit tool that comes with TortoiseHg before running back to Qct, but here
+ are the instructions should you decide to stick with ole' reliable:
+
+ 1. Download and install Qct-1.7-standalone-win32.exe from http://qct.sourceforge.net
+ 2. Add (or merge) the following into your :file:`Mercurial.ini` ::
+
+ [extensions]
+ qct = C:\path\to\qct.py
+
+ [tortoisehg]
+ extcommit = qct
+
+ [qct]
+ path = "C:\Program Files\qct\qct.exe"
+
+ Now the :guilabel:`HG Commit` menu option should launch Qct, and :command:`hg qct` should work from the command
+ line and hgtk ci should also launch Qct.
+
+ In 0.9, hgtk ci will no longer launch Qct. We will drop support for any external commit tools.
+
+*How can I use hgk (hg view) with TortoiseHg?*
+ Download `tclkit <http://www.equi4.com/tclkit>`_ and place it in your TortoiseHg directory.
+ Download the `hgk <http://www.selenic.com/repo/hg/raw-file/tip/contrib/hgk>`_ script from the Mercurial
+ repository and place it in your :file:`TortoiseHg\contrib` directory. Create an :file:`hgk.cmd` file and
+ place it in :file:`TortoiseHg\\scripts`. This file should contain::
+
+ @set HG=C:\Program Files\TortoiseHg\hg.exe
+ @"C:\Program Files\TortoiseHg\tclkit-win32.exe" "C:\Program Files\TortoiseHg\contrib\hgk" %*
+
+ Then enable hgk in your :file:`Mercurial.ini` file::
+
+ [extensions]
+ hgk =
+
+ [hgk]
+ path=C:\Program Files\TortoiseHg\scripts\hgk.cmd
+ vdiff=vdiff
+
+ This allows you launch :command:`hg view` from the command line.
+
+*How can I use WinMerge as my visual diff tool?*
+ Add these lines to your personal :file:`Mercurial.ini` file ::
+
+ [extdiff]
+ cmd.winmerge = C:\Program Files\WinMerge\WinMerge.exe
+ opts.winmerge = /e /x /ub /wl
+
+ Now run the :guilabel:`Global Settings` tool. On the :guilabel:`TortoiseHg` tab, you should see
+ :guilabel:`winmerge` available in the drop-down list for :guilabel:`Visual Diff Command`.
+ Select :guilabel:`winmerge`, apply, then close.
+
+ This same approach can be used to add nearly any visual diff tool, but be aware that your diff tool must
+ be able to support directory diffs if it is to be used by TortoiseHg, unless you are using release 0.8 or
+ later.
+
+*How can I use Araxis Merge as my visual diff tool?*
+ Add these lines to your personal :file:`Mercurial.ini` file ::
+
+ [extdiff]
+ cmd.adiff=C:\Program Files\Araxis\Araxis Merge v6.5\compare.exe
+ opts.adiff=/wait
+
+ Now run the :guilabel:`Global Settings` tool. On the :guilabel:`TortoiseHg` tab, you should see
+ :guilabel:`adiff` available in the drop-down list for :guilabel:`Visual Diff Command`.
+ Select :guilabel:`adiff`, apply, then close.
+
+*Does TortoiseHg work on Vista?*
+ TortoiseHg 0.8 works well on x86 and x64 versions of Vista and Windows 7.
+
+*How can I get the context menus working on 64-bit Vista?*
+ Upgrade to TortoiseHg 0.8
+
+*I'm a CLI user, how do I disable the shell extensions (overlay icons and context menus)?*
+ If you have TortoiseHg 0.8 or later, you can disable overlays via the taskbar options menu.
+ The only way to disable the context menu is to rename :file:`ThgShell.dll` in your install directory
+ and then restart explorer (this completely disables the shell extension).
+
+ If you have an older TortoiseHg release, run this command with appropriate permissions:
+ :command:`regsvr32 /u "C:\\Program Files\\TortoiseHg\\tortoisehg.dll`
+ Run that command without the :command:`/u` argument to re-enable the extensions. Both operations take effect
+ after the next reboot.
+
+*How is TortoiseHg configured?*
+ TortoiseHg gets configuration settings from two systems.
+
+ 1. The Mercurial configuration system, which is three-tiered
+ 1. Site-wide :file:`Mercurial.ini` in :file:`%ProgramFiles%\\TortoiseHg`
+ 2. Per-User :file:`Mercurial.ini` in :file:`%UserProfile%`
+ 3. Per-Repository :file:`Mercurial.ini` in :file:`{repo-root}\.hg\hgrc`
+ 2. :file:`%APPDATA%\Tortoisehg` settings for application state (window positions, etc)
+
+ These are configurables that are stored the Mercurial configuration system. ::
+
+ [tortoisehg]
+ extcommit = None
+ vdiff = vdiff
+ editor = gvim
+ tabwidth = 4
+ longsummary = True
+ copyhash = False
+ graphlimit = 500
+ authorcolor = True
+ authorcolor.steve = blue
+
+ See also :doc:`settings`, and `issue #50 <http://bitbucket.org/tortoisehg/stable/issue/50/>`_.
+
+*Is it possible to change fonts?*
+ In some cases, yes. The gtools based dialogs (commit, status, shelve) allow some font configuration. ::
+
+ [gtools]
+ # font used in changeset viewer and commit log text
+ fontcomment = courier 10
+ # font used for diffs in status and commit tools
+ fontdiff = courier 10
+ # font used in file lists in status and commit tools
+ fontlist = courier 9
+
+ # make the integrated diff window appear at the bottom or side
+ # (applies to commit and status dialogs)
+ diffbottom = False
+
+*How do I switch GTK themes?*
+ In 0.7, the theme was selectable at install time. For other releases, (and after install on 0.7) you can
+ still do this manually
+
+ * cd :file:`C:\\Program Files\\TortoiseHg\\share\\themes` (>=0.8, this is :file:`gtk\\share\\themes`)
+ * look at the themes in this directory, remember their names or keep this folder open.
+ * :command:`cd ..\\..\\etc\\gtk-2.0`
+ * edit :file:`gtkrc` and change the name of the theme you wish to use
+ * Vista may try to prevent you from editing the file directly. I work around this by copying to your desktop,
+ editing it there, then copying it back (and answering all the security dialogs)
+ * Changes immediately take affect on all newly launched applications
+
+ You also should be able to download new themes and copy them into the :file:`share\\themes` directory and
+ then enable them in your :file:`gtkrc`.
+
+*After uninstalling, it left a bunch of DLL and PYD files behind.*
+ Reboot, like the uninstaller told you to :-) The uninstaller marked those files for removal at the next boot
+ since most of them could not be removed while your system was running.
+
+*How can I convert a subversion repository to Mercurial?*
+ You must install svn-win32-1.6 command line tools, then add them to your path. Then you must enable the
+ `convert <http://www.selenic.com/mercurial/wiki/index.cgi/ConvertExtension>`_ extension. At this point,
+ you should be able to use the :command:`hg convert` command to do the conversion. Please direct
+ problems/questions about the convert extension to the Mercurial mailing list or #mercurial on irc.freenode.net.
+
+*Where do TortoiseHg extensions look for external Python modules on Windows?*
+ TortoiseHg includes an entire Python distribution bundled up as DLLs. The standard library modules are all
+ in the :file:`library.zip` file in :file:`C:\Program Files\TortoiseHg`.
+
+ If you try to use an extension that imports a non-standard Python module, you will find that the extension
+ will fail to load because it can't find the module. For example the ReviewBoard extension imports the
+ simplejson module, which is not part of the standard Python distribution.
+
+ In order to make it work you need to add a couple of lines to the top of the extension's .py file, before
+ the line that imports the foreign module::
+
+ import sys
+ sys.path.append('C:\\path\\to\\module')
+
+ Note that this will not work for modules distributed as .egg files; the supplied path must contain the
+ module's .py or .pyc files.
+
+*How do I fix odd characters in dialog?*
+ In 0.8, we no longer distribute multiple themes and switched default theme to MS-Windows.
+ As a result, it might causes an issue related default font of MS-Windows theme in some environments.
+ In order to fix this issue, add following setting to TortoiseHg's :file:`gtkrc` file::
+
+ style "msw-default"
+ {
+ font_name = "MS UI Gothic 9"
+ }
+
+ You can find :file:`gtkrc` file in your TortoiseHg install directory:
+ i.e. :file:`C:\\Program Files\\TortoiseHg\\gtk\\etc\\gtk-2.0\\gtkrc`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -0,0 +1,34 @@ + .. TortoiseHG documentation master file, created by
+ sphinx-quickstart on Tue Jul 21 13:14:26 2009.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+Welcome to TortoiseHG's documentation!
+======================================
+
+Contents:
+
+.. toctree::
+ :maxdepth: 2
+
+ preface
+ intro
+ common
+ explorer
+ commit
+ shelve
+ changelog
+ datamine
+ synchronize
+ serve
+ settings
+ recovery
+ faq
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
|
|
@@ -0,0 +1,8 @@ + =======================
+TortoiseHg Introduction
+=======================
+
+.. module:: introduction
+ :synopsis: Introduce TortoiseHg and its various parts
+
+TortoiseHg is...
|
|
@@ -0,0 +1,72 @@ + =======
+Preface
+=======
+
+.. module:: preface
+ :synopsis: About this manual
+
+Audience
+========
+
+This book is written for computer literate folk who want to use Mercurial to manage their data, but are
+uncomfortable using the command line client to do so. Since TortoiseHG is a windows shell extension
+it's assumed that the user is familiar with the windows explorer and knows how to use it.
+TortoiseHG comes with a simple python application, hgtk, which allows you to launch the TortoiseHg dialogs
+on any platform that supports Mercurial, and PyGtk. This is the easiest way to start using TortoiseHg on Linux
+and Mac OS X.
+
+
+Reading guide
+=============
+
+This Preface explains a little about the TortoiseHG project, the community of people who work on it,
+and the licensing conditions for using it and distributing it.
+
+The :doc:`intro`, explains what TortoiseHG is, what it does, where it comes from and the
+basics for installing it on your PC.
+
+The Chapter 2 and others. TODO when the structure of the manual is enough stable.
+
+TortoiseHG is free!
+===================
+
+TODO
+
+Community
+=========
+
+TODO
+
+Acknowledgement
+===============
+
+TODO
+
+Conventions used in this manual
+===============================
+
+The following typographical conventions are used in this manual:
+
+:kbd:`CTRL-A`
+ Indicates a key, or combination of keys, to press.
+
+:guilabel:`Commit`
+ Indicates a label, button or anything that appears in user interfaces.
+
+:menuselection:`TortoiseHG... --> About`
+ Indicates a menu choice, or a combination of menu choice, tab selection and GUI label.
+ For example :menuselection:`TortoiseHG... --> Global settings --> Commit --> User name`
+ means do something in :guilabel:`User name` label under :guilabel:`Commit` tab selectable from the
+ menu choice :menuselection:`TortoiseHG... --> Global settings`.
+
+:file:`.hg/hgrc`
+ Indicates a filename or directory name.
+
+:command:`hgtk log`
+ Indicates a command to digit in command window.
+
+.. note::
+ This is a note.
+
+.. warning::
+ An important note. Pay attention.
\ No newline at end of file |
|
@@ -0,0 +1,29 @@ + ===================
+TortoiseHg Recovery
+===================
+
+.. module:: recovery.dialog
+ :synopsis: Dialog used to perform recovery operations
+
+.. figure:: figures/recover.png
+ :alt: Recovery dialog
+
+The buttons all equate to a single Mercurial command (save stop, obviously)
+
+:guilabel:`clean`
+ :command:`hg update --clean` - performs a clean checkout of the existing
+ working directory parent revision. Undoes a partially completed
+ merge.
+
+:guilabel:`rollback`
+ :command:`hg rollback` - undo operation for most recent repository
+ transaction. Can undo a commit or pull.
+
+:guilabel:`recover`
+ :command:`hg recover` - recover from a badly aborted operation. Rarely
+ necessary, Mercurial will tell you if it needs to be performed.
+
+:guilabel:`verify`
+ :command:`hg verify` - perform a consistency check of the contents of your
+ repository
+
|
|
@@ -0,0 +1,52 @@ + ================
+TortoiseHg Serve
+================
+
+.. module:: serve.dialog
+ :synopsis: Dialog used to start/stop the web server
+
+The serve tool is a wrapper for Mercurial's built-in web server. Once
+launched, any computer can attach to the http port and browse your
+repository(ies) or perform clone, pull, or even push operations (if you
+configure your server to allow it).
+
+.. figure:: figures/serve.png
+ :alt: Web server dialog
+
+:guilabel:`Start`
+ start the web server
+
+:guilabel:`Stop`
+ stop the web server
+
+:guilabel:`Browse`
+ open your default browser at the built-in web server
+
+:guilabel:`Configure`
+ Configure repository web style, description, and access policies
+
+When the settings dialog is launched via the :guilabel:`Configure` button, it is
+run in the context of the current repository. Please visit the
+Mercurial wiki for detailed descriptions of what the various web
+configurations are for.
+
+If you wish to serve a many repositories with a single web server
+instance, you can create an :file:`hgwebdir.conf` text file with the
+following contents: ::
+
+ [paths]
+ / = /path/to/repositories/*
+
+The first path '/' is where the repositories will appear in the context
+of the web server and the second path describes here the repositories
+can be found on your computer. Multiple entries are possible.
+
+To use this file you must launch the TortoiseHg serve dialog from the
+command line via: :command:`hgtk serve --webdir-conf=hgwebdir.conf`. In a
+future release of TortoiseHg, we hope to make this launchable from the
+shell context menu.
+
+Changes since 0.7
+-----------------
+* Improved error handling
+* i18n fixes
|
|
@@ -0,0 +1,82 @@ + ===================
+TortoiseHg Settings
+===================
+
+.. module:: settings.dialog
+ :synopsis: Dialog used to set preferences
+
+.. figure:: figures/settings.png
+ :alt: Settings dialog
+
+ Settings dialog
+
+The Settings dialog is used to configure both TortoiseHg and the
+underlying Mercurial DVCS. Since TortoiseHg uses Mercurial's underlying
+configuration system to store and retrieve its settings, these are
+essentially the same thing.
+
+Mercurial on Windows has a three-tier configuration system.
+
+1) A site-wide configuration file in
+ :file:`C:\\Program Files\\TortoiseHg\\Mercurial.ini`
+ This file is read first and thus has the lowest priority.
+2) A per-user configuration file in
+ :file:`C:\\Documents and Settings\\username\\Mercurial.ini`
+ This file is read second and thus can override settings in the
+ site-wide configuration file.
+3) A per-repository configuration file in :file:`repo-root\\.hg\\hgrc` This
+ file is read last and can override site-wide and user global settings.
+
+The site-wide file can be overwritten on upgrades so it is recommended
+that you do not make changes to this file. Instead, you should make
+changes to your user :file:`Mercurial.ini` and/or the repository
+:file:`hgrc` file. The TortoiseHg Settings dialog enforces this
+suggestion by only operating in two modes:
+
+Global
+ edits your user :file:`Mercurial.ini` file
+Repository
+ edits a repository :file:`.hg/hgrc` file
+
+In TortoiseHg 0.8, you may toggle between the two modes using the combo
+box at the top of the dialog.
+
+Most TortoiseHg users will want to store all configurables in their
+global user settings, and only use the repository hgrc to store paths
+(remote repository aliases) and web settings, though it is possible to
+override many configurables per-repository (a common example is to
+configure a different username for use in a repository). Also note that
+the user and repository configuration files may not exist until you run
+the Settings dialog for the first time.
+
+Tabs
+====
+
+The Settings tool is a tabbed application.
+
+Each tab corresponds roughly to a section of your :file:`Mercurial.ini`
+file, though there is a certain amount of overlap. Some sections were
+split across multiple tabs for clarity.
+
+Every tab except of the :guilabel:`Paths` tab has the same format, a list of
+configurable options with a drop-down combo box with possible values and
+a history of options you have used for that setting. The configurable
+name (label) has a tooltip which describes in more detail what you are
+configuring and its default value.
+
+The :guilabel:`Paths` tab is where you can store URLs (paths) to related
+repositories. It is rare to store paths in the site-wide or user
+configuration files, most of the time you will only store these in a
+repository configuration file. Mercurial has two special path names that
+can be used as default targets for some operations.
+
+default
+ the default URL to pull from, usually clone source
+default-push
+ the default push target when using the command line
+
+Please consult the Mercurial wiki for more detailed information about
+these configurables (except for the first three tabs:
+:guilabel:`TortoiseHg`, :guilabel:`Commit`, :guilabel:`Changelog`, which
+are specifically for TortoiseHg).
+
|
|
|
@@ -0,0 +1,121 @@ + ======================
+TortoiseHg Shelve Tool
+======================
+
+.. module:: commit.dialog
+ :synopsis: Dialog used to perform shelve/unshelve operations
+
+.. warning::
+ The win32text extension can cause trouble with hunk selection. This
+ has been resolved in Mercurial 1.3 and TortoiseHg 0.8, but requires
+ proper configuration. See `issue #82 <http://bitbucket.org/tortoisehg/stable/issue/82/>`_.
+
+.. figure:: figures/shelve.png
+ :alt: Shelve dialog
+
+ Shelve dialog
+
+Visually it is very similar to the status dialog in 0.6 and the commit
+tool in 0.7. The purpose of this dialog is to allow the user to
+*shelve* selected changes from the working directory, store them in a
+special patch file in the repository, and then *unshelve* them back at a
+later time.
+
+Walking across the toolbar, the buttons perform the following tasks:
+
+:guilabel:`Refresh`
+ Reload the state of the working directory. It retains file check and
+ selection state across refresh, but not hunks.
+:guilabel:`Shelve`
+ Shelve selected diffs in checked files.
+:guilabel:`Unshelve`
+ Replace the shelved changes back into the working directory.
+:guilabel:`Revert`
+ Revert checked files to last revisioned state.
+:guilabel:`Add`
+ Add checked files that were in unknown *?* state.
+ These files will then be versioned as soon as they are committed.
+:guilabel:`Move`
+ Move checked files to specified target directory.
+ This move is done with Mercurial's full knowledge.
+:guilabel:`Remove`
+ Delete checked unversioned files and/or remove (mark as deleted) any
+ versioned files.
+:guilabel:`Show Diff`
+ This is a toggle button that shows and hides the entire diff panel.
+ Hiding the diff panel can sometimes be useful in large repositories.
+
+Below the file list are checkboxes that toggle the inclusion of the
+various classes of files {modified, added, removed, deleted, unknown,
+clean, ignored}.
+
+Shelving Changes
+----------------
+
+
+Just like the commit tool, this dialog uses TortoiseHg's integrated hunk
+selection code to allow the user to select the files and change hunks to
+move to the shelf. When you press the shelve button, the selected
+changes are removed from the working directory and placed in a patch
+file. If the shelf already had changes in it, you will be asked whether
+to replace those changes or to merge these new changes into it. When
+the shelf has changes, the unshelve button will be active.
+
+When the unshelve button is pressed, the shelved changes are reapplied
+to the working directory.
+
+How is this different than record/commit?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Shelved changes are physically removed from the working directory until
+you unshelve them. This means you can build your project and run tests
+on it while the shelved changes are gone. This is safer than selecting
+changes at build time since you can test whether the change being
+committed is valid.
+
+Shelving changes is also useful for removing partially completed work to
+make sure it doesn't interfere with the debugging of other changes you
+are making.
+
+Caveat: the shelved changes are stored in a patch that is based on the
+current working directory contents. There's no guarantee that the patch
+can be cleanly reapplied later if the shelved changes conflict with
+changes made to your code after the shelving.
+
+How is this different than MQ?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A shelf is, in effect, a single unnamed MQ patch that is never converted
+into a changeset. The shelve tool can be useful when you are
+maintaining a patch queue, since it can hold changes from one patch and
+re-apply them to another patch (or an entirely new patch).
+
+How is this different than attic?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The attic extension is a super-set of the shelve feature. In particular,
+attic allows you to have several named *shelves* which can be saved and
+restored independently. TortoiseHg doesn't support the attic extension
+in 0.7, but will probably support attic like features in future
+releases.
+
+Keyboard navigation
+-------------------
+
+:guilabel:`CTRL-C`
+ in the diff panel will copy the currently highlighted (not selected,
+ but highlighted) diff hunks to the clipboard. These can be pasted
+ into a text buffer to generate any arbitrary patch based from the
+ changes in your working directory.
+
+The code which copies the hunks to the clipboard is intelligent about
+diff headers. If your highlighted list includes a hunk from a file but
+not it's file diff header, the diff header will be added to the
+clipboard in the appropriate location in the stream to make the
+clipboard contents always be a valid patch.
+
+Configurables
+-------------
+
+* :menuselection:`TortoiseHg --> Bottom Diffs`
+* :menuselection:`TortoiseHg --> Tab Width`
|
|
|
@@ -0,0 +1,144 @@ + ======================
+TortoiseHg Synchronize
+======================
+
+.. module:: synchronize.dialog
+ :synopsis: Dialog used to perform synchronization operations
+
+.. figure:: figures/synchronize.png
+ :alt: Synchronize dialog
+
+ Synchronize dialog
+
+The synchronize tool is used to transmit changesets between repositories
+or optionally to email recipients.
+
+:guilabel:`Incoming`
+ show changesets that would be pulled from target repository
+:guilabel:`Pull`
+ pull incoming changesets from target repository
+:guilabel:`Outgoing`
+ show changesets that would be pushed to target repository
+:guilabel:`Push`
+ push outgoing changesets to target repository
+:guilabel:`Email`
+ send outgoing changesets (to target repository) as email
+:guilabel:`Stop`
+ stop current operation
+:guilabel:`Configure`
+ configure repository paths (aliases)
+
+Below the toolbar are two buttons and a text entry:
+
+:guilabel:`Repo:`
+ browse for a local repository to synchronize with
+:guilabel:`Bundle:`
+ browse for a local bundle file to pull from
+
+The text entry/combo box is where you enter or select paths of target
+repositories. The synchronize tool will seed the drop-down list with
+path aliases configured for this repository.
+
+The :guilabel:`Post Pull Operation` frame contains radio buttons for
+selecting the operation which is performed after a pull. This behavior
+is configurable via the :guilabel:`Configure` button. You can select a
+default behavior for your user account and override that selection on a
+per-repository basis.
+
+:guilabel:`Nothing`
+ No operations are performed after a pull. You will be allowed to
+ view the pulled changesets in the log viewer, and you will have the
+ option to update to the new tip if applicable.
+:guilabel:`Update`
+ Automatically update to the new branch tip if, and only if, new
+ revisions were pulled into the local repository. This could trigger
+ a merge if the pulled changes conflict with local uncommitted
+ changes.
+:guilabel:`Fetch`
+ Equivalent to hg fetch. See the fetch extension documentation for
+ it's behavior.
+:guilabel:`Rebase`
+ Equivalent to pull --rebase. See the rebase extension documentation
+ for it's behavior. Rebase operations disable connections to any
+ changelog tools, since it is very destructive to any app which is
+ holding a repository object.
+
+The :guilabel:`use proxy` button is a quick way to disable your proxy
+configuration for individual operations. The button is only sensitive
+when an http proxy is configured.
+
+All operations which require authentication will pop up dialog boxes to
+get the required information from the user. TortoiseHg uses the
+TortoisePlink tool (borrowed from the TortoiseSVN distribution) to
+handle *ssh:* connections and authentication. See the FAQ_ for help if
+you have trouble connecting to ssh servers.
+
+.. _FAQ: http://bitbucket.org/tortoisehg/stable/wiki/FAQ#tortoisehg-faq
+
+Under the :guilabel:`Advanced Options` fold-up panel are a number of
+configurables that are valid for most push/pull operations.
+
+:guilabel:`Force pull or push`
+ override warnings about multiple heads or unrelated repositories
+:guilabel:`Target Revision`
+ to avoid sending all revisions
+:guilabel:`Remote Command`
+ provides -e argument
+:guilabel:`Show patches`
+ show diffs in incoming and outging changes
+:guilabel:`Show Newest First`
+ reverse order that changesets are listed
+:guilabel:`Show No Merges`
+ filter out merge changesets from output (does not affect push/pull)
+
+
+After Pull
+----------
+
+After changesets are pulled into your repository, two buttons may appear
+at the bottom of the dialog:
+
+:guilabel:`View pulled changesets`
+ Open the changelog viewer and inspect pulled changesets
+:guilabel:`Update to tip`
+ Update your working directory to the new tip
+
+Either button may be hidden if it is not applicable.
+
+Email
+-----
+
+.. figure:: figures//email.png
+ :alt: Email dialog
+
+ Email dialog
+
+The email dialog can be launched from two TortoiseHg tools.
+
+1) The changelog tool, in which case the user intends to email a single
+ revision or a range of revisions.
+
+2) The synchronize tool, in which case the user intends to email all
+ outgoing changes to the current target repository (it's good practice to
+ check the outgoing changes before launching the email dialog).
+
+The :guilabel:`Send` button is obvious, and the :guilabel:`Configure`
+dialog predictably opens the TortoiseHg Settings dialog to the email tab
+where you can configure your SMTP settings and set default
+:guilabel:`To:` and :guilabel:`From:` addresses.
+
+:guilabel:`In-Reply-To:` can be used to get your patches properly
+threaded in mailing lists.
+
+Please consult the Mercurial documentation for the differences between
+plain patches, HG patches, Git patches, and bundles.
+
+Changes since 0.7
+-----------------
+
+* Path drop-down list no longer includes most-recently-used paths. It
+ only includes configured repository paths.
+* Email dialog now has buttons for configuring in-reply-to tags and the
+ attachment types.
+* Email dialog now sends an intro message only when one has been
+ entered, regardless of patch count.
|
@@ -505,15 +505,22 @@ wfile = util.localpath(self.curfile)
wfile, ext = os.path.splitext(os.path.basename(wfile))
filename = "%s@%d%s" % (wfile, self.currev, ext)
- fd = gtklib.NativeSaveFileDialogWrapper(Title=_("Save file to"),
- InitialDir=self.cwd,
- FileName=filename)
- result = fd.run()
+ result = gtklib.NativeSaveFileDialogWrapper(Title=_("Save file to"),
+ InitialDir=self.cwd,
+ FileName=filename).run()
if result:
+ if os.path.exists(result):
+ res = gdialog.Confirm(_('Confirm Overwrite'), [], self,
+ _('The file "%s" already exists!\n\n'
+ 'Do you want to overwrite it?') % result).run()
+ if res != gtk.RESPONSE_YES:
+ return
+ os.remove(result)
+
q = Queue.Queue()
cpath = util.canonpath(self.repo.root, self.cwd, self.curfile)
hgcmd_toq(self.repo.root, q, 'cat', '--rev',
- str(self.currev), '--output', result, cpath)
+ str(self.currev), '--output', fromutf(result), cpath)
def diff_to_local(self, menuitem):
if not self.curfile:
|
@@ -502,7 +502,7 @@ file_path = os.path.join(pathroot, file)
util.system("%s \"%s\"" % (editor, file_path),
environ={'HGUSER': self.ui.username()},
- onerr=util.Abort, errprefix=_('edit failed'))
+ onerr=self.ui, errprefix=_('edit failed'))
editor = (self.ui.config('tortoisehg', 'editor') or
self.ui.config('gtools', 'editor') or
|
@@ -345,8 +345,6 @@ cmdline.insert(2, '--test')
if subjtext:
cmdline += ['--subject', subjtext]
- if self._intro:
- cmdline += ['--intro']
if self._bundle.get_active():
cmdline += ['--bundle']
if '--outgoing' in self.revargs:
@@ -361,6 +359,9 @@ start = self.descbuffer.get_start_iter()
end = self.descbuffer.get_end_iter()
desc = self.descbuffer.get_text(start, end)
+ if desc and self._intro:
+ cmdline += ['--intro']
+ tmpfile = None
try:
fd, tmpfile = tempfile.mkstemp(prefix="thg_emaildesc_")
os.write(fd, desc)
@@ -375,4 +376,6 @@ finally:
if oldpager:
os.environ['PAGER'] = oldpager
- os.unlink(tmpfile)
+ if tmpfile:
+ os.unlink(tmpfile)
+
|
@@ -158,7 +158,7 @@ except:
pass
- shlib.shell_notify(dest)
+ shlib.shell_notify([dest])
dialog.info_dialog(self, _('New repository created'),
_('in directory %s') % hglib.toutf(os.path.abspath(dest)))
|
@@ -661,11 +661,9 @@ def export_patch(self, menuitem):
rev = self.currow[treemodel.REVID]
filename = "%s_rev%s.patch" % (os.path.basename(self.repo.root), rev)
- fd = gtklib.NativeSaveFileDialogWrapper(Title=_('Save patch to'),
- InitialDir=self.repo.root,
- FileName=filename)
- result = fd.run()
-
+ result = gtklib.NativeSaveFileDialogWrapper(Title=_('Save patch to'),
+ InitialDir=self.repo.root,
+ FileName=filename).run()
if result:
if os.path.exists(result):
res = gdialog.Confirm(_('Confirm Overwrite'), [], self,
|
@@ -1,4 +1,3 @@ - # -*- coding: UTF-8 -*-
"""Cell renderer for directed graph.
This module contains the implementation of a custom GtkCellRenderer that
@@ -10,7 +9,7 @@just be for the background.
"""
-__copyright__ = "Copyright � 2005 Canonical Ltd."
+__copyright__ = "Copyright 2005 Canonical Ltd."
__author__ = "Scott James Remnant <scott@ubuntu.com>"
import math
|
|
|
Loading...