Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.9, 0.9.1, and 0.9.1.1

merge with stable

Changeset 4ec8fe686d32

Parents 6f96bf534dc3

Parents 5875e3e16b1b

by Steve Borho

Changes to 18 files · Browse files at 4ec8fe686d32 Showing diff from parent 6f96bf534dc3 5875e3e16b1b Diff from another changeset...

 
11
12
13
14
15
 
 
16
17
18
 
22
23
24
25
 
26
27
28
 
30
31
32
33
 
34
35
36
 
45
46
47
 
 
 
48
49
50
 
57
58
59
60
 
61
62
63
 
11
12
13
 
 
14
15
16
17
18
 
22
23
24
 
25
26
27
28
 
30
31
32
 
33
34
35
36
 
45
46
47
48
49
50
51
52
53
 
60
61
62
 
63
64
65
66
@@ -11,8 +11,8 @@
 URL: http://bitbucket.org/tortoisehg/stable/wiki/  Source0: tortoisehg-%{version}.tar.gz  BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: python -Requires: python >= 2.4, mercurial >= 1.3, gnome-python2-gconf +BuildRequires: python, python-devel, gettext, python-sphinx +Requires: python >= 2.4, python-iniparse, mercurial >= 1.3, gnome-python2-gconf  Requires: gnome-python2-gtksourceview, pycairo, pygobject2, pygtk2 >= 2.10    %description @@ -22,7 +22,7 @@
 %package nautilus  Summary: Mercurial GUI plugin to Nautilus file manager  Group: Development/Tools -Requires: %{name} nautilus-python +Requires: %{name} = %{version}-%{release}, nautilus-python    %description nautilus  This package contains the TortoiseHg Gnome/Nautilus extension, @@ -30,7 +30,7 @@
 system available in the file manager with a graphical interface.    %prep -%setup -q -n tortoisehg-%{version} +%setup -q    # Fix for nautilus python extensions in lib64 on x86_64  sed -i "s,lib/nautilus,%{_lib}/nautilus,g" setup.py @@ -45,6 +45,9 @@
 %build  %{__python} setup.py build   +cd doc +make html +  %install  rm -rf $RPM_BUILD_ROOT   @@ -57,7 +60,7 @@
   %files  %defattr(-,root,root,-) -%doc COPYING.txt ReleaseNotes.txt +%doc COPYING.txt ReleaseNotes.txt doc/build/html/  %{_bindir}/hgtk  %{python_sitelib}/hggtk/  %{python_sitelib}/thgutil/
Change 1 of 1 Show Entire File doc/​Makefile Stacked
 
32
33
34
 
 
 
35
36
37
 
32
33
34
35
36
37
38
39
40
@@ -32,6 +32,9 @@
  @echo   @echo "Build finished. The HTML pages are in build/html."   +zip: html + (cd build ; zip TortoiseHg.html.zip -r html) +  pickle:   mkdir -p build/pickle build/doctrees   $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle
 
3
4
5
6
 
7
8
9
 
10
11
12
 
 
13
14
15
 
61
62
63
64
65
 
 
66
67
 
68
69
 
70
71
72
73
74
75
 
76
77
78
 
83
84
85
86
 
 
87
88
89
 
91
92
93
94
 
95
96
97
98
99
100
 
101
102
103
104
105
106
107
108
109
110
 
 
 
 
 
 
 
 
 
 
111
112
113
114
115
 
119
120
121
122
 
123
124
125
126
127
128
 
129
130
131
132
133
134
135
136
137
 
 
 
 
 
 
138
139
140
 
154
155
156
157
158
 
 
159
160
161
 
171
172
173
174
 
175
176
177
 
187
188
189
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
4
5
 
6
7
8
 
9
10
 
 
11
12
13
14
15
 
61
62
63
 
 
64
65
66
 
67
68
 
69
70
71
72
73
74
 
75
76
77
78
 
83
84
85
 
86
87
88
89
90
 
92
93
94
 
95
96
97
98
99
100
 
101
102
 
 
 
 
 
 
 
 
 
103
104
105
106
107
108
109
110
111
112
113
 
114
115
116
 
120
121
122
 
123
124
125
126
127
128
 
129
130
131
132
 
 
 
 
 
 
133
134
135
136
137
138
139
140
141
 
155
156
157
 
 
158
159
160
161
162
 
172
173
174
 
175
176
177
178
 
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
@@ -3,13 +3,13 @@
 ===========================    .. module:: changelog.dialog - :synopsis: Dialog used to view log + :synopsis: Dialog used to view log    .. figure:: figures/log.png - :alt: Changelog + :alt: Changelog   - Changelog viewer dialog - + Changelog viewer dialog +  The toolbar buttons from left to right:    :guilabel:`Refresh` @@ -61,18 +61,18 @@
 :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 + display changes (visual diff) between this revision and your current + working directory  :guilabel:`update` - update your working directory to this revision [1] + update your working directory to this revision [#rcm1]_  :guilabel:`merge with` - merge with this revision [2] + merge with this revision [#rcm2]_  :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] + 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` @@ -83,7 +83,8 @@
  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] + 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. @@ -91,25 +92,25 @@
   :guilabel:`diff with selected`   Description -:guilabel:`visual diff with selected` [5] +:guilabel:`visual diff with selected` [#rcm5]_   Description  :guilabel:`email from here to selected`   Description  :guilabel:`bundle from here to selected`   Description -:guilabel:`merge with selected` [6] +:guilabel:`merge with selected` [#rcm6]_   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 + +.. [#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:`Settings --> Global --> TortoiseHg --> Visual Diff Command` +.. [#rcm6] 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 @@ -119,22 +120,22 @@
 bring up a context menu for the selected file:    :guilabel:`visual diff` - Open this revision of the file in your visual editor[1] + 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 [2] + 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 [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. + Checkout this specific revision of this file [#flcm3]_ + +.. [#flcm1] :menuselection:`Settings --> Global --> 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 @@ -154,8 +155,8 @@
 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. +This changeset browser also supports the :kbd:`Ctrl-C` keyboard +accelerator to copy hightlighted diff hunks to the clipboard.    Configurables  ------------- @@ -171,7 +172,7 @@
  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: ::   @@ -187,3 +188,26 @@
  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 + +or :: + + hgtk history + +The syntax is :: + + hgtk log [OPTIONS] + +Valid [OPTIONS] are: + +``-l``, ``--limit`` + Specify the limit number of changes displayed. + +.. vim: noet ts=4
 
3
4
5
6
 
7
8
9
10
11
 
 
 
 
12
13
14
 
15
16
17
18
19
20
 
21
22
 
23
24
 
25
26
27
 
29
30
31
32
33
 
 
34
35
36
37
38
39
 
 
 
40
41
42
43
44
 
 
45
46
47
 
 
48
49
50
 
 
51
52
53
54
55
56
57
58
 
 
 
 
59
60
61
62
 
 
 
63
64
65
66
67
68
 
 
 
 
 
69
70
71
72
 
73
74
75
 
79
80
81
82
 
83
84
85
 
90
91
92
93
 
94
95
96
 
97
98
99
100
101
102
103
 
104
105
106
 
112
113
114
115
 
116
117
118
 
146
147
148
149
150
 
 
151
152
153
154
155
156
 
 
 
 
 
157
158
159
 
167
168
169
170
 
 
171
172
173
 
199
200
201
202
203
 
 
204
205
206
 
209
210
211
212
 
213
214
215
 
230
231
232
233
 
234
235
236
 
240
241
242
243
244
 
 
245
246
247
 
253
254
255
256
 
257
258
259
 
260
261
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
262
263
264
 
270
271
272
273
274
 
 
 
275
276
277
 
287
288
289
290
 
291
292
293
294
295
 
 
296
297
298
 
317
318
319
 
 
3
4
5
 
6
7
8
 
 
 
9
10
11
12
13
 
 
14
15
16
17
18
19
 
20
21
 
22
23
 
24
25
26
27
 
29
30
31
 
 
32
33
34
35
36
 
 
 
37
38
39
40
41
42
 
 
43
44
45
 
 
46
47
48
 
 
49
50
51
52
53
54
 
 
 
 
55
56
57
58
59
 
 
 
60
61
62
63
 
 
 
 
 
64
65
66
67
68
69
70
71
 
72
73
74
75
 
79
80
81
 
82
83
84
85
 
90
91
92
 
93
94
95
 
96
97
98
99
100
101
102
 
103
104
105
106
 
112
113
114
 
115
116
117
118
 
146
147
148
 
 
149
150
151
 
 
 
 
 
152
153
154
155
156
157
158
159
 
167
168
169
 
170
171
172
173
174
 
200
201
202
 
 
203
204
205
206
207
 
210
211
212
 
213
214
215
216
 
231
232
233
 
234
235
236
237
 
241
242
243
 
 
244
245
246
247
248
 
254
255
256
 
257
258
259
 
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
 
304
305
306
 
 
307
308
309
310
311
312
 
322
323
324
 
325
326
327
328
 
 
329
330
331
332
333
 
352
353
354
355
@@ -3,25 +3,25 @@
 ======================    .. module:: commit.dialog - :synopsis: Dialog used to perform commit + :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 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 +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 + :alt: Commit dialog   - Commit dialog + Commit dialog    Features  -------- @@ -29,47 +29,47 @@
 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. - + 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 @@ -79,7 +79,7 @@
 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)  -------------------------   @@ -90,17 +90,17 @@
 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?  ~~~~~~~~~~~~~~~~~   @@ -112,7 +112,7 @@
 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, @@ -146,14 +146,14 @@
   Keyboard navigation  ------------------- - -:kbd:`CTRL-ENTER` + +: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. +: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 @@ -167,7 +167,8 @@
   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` +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 @@ -199,8 +200,8 @@
   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  ---------------------   @@ -209,7 +210,7 @@
 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  ----------   @@ -230,7 +231,7 @@
 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` +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 @@ -240,8 +241,8 @@
 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  -------------   @@ -253,12 +254,45 @@
  Configures a 'policy' limit for summary lines  :menuselection:`Commit --> Message Line Length`   Configures a 'policy' limit for message lines -:menuselection:`Commit --> Bottom Diffs` +:menuselection:`TortoiseHg --> Bottom Diffs`   Toggles diff pane from left to below file list  :menuselection:`TortoiseHg --> Max Diff Size` - Configures the diff size limit + Configures the diff size limit    External tool configuration is deprecated and will be removed in 0.9 + +From command line +----------------- + +The commit tool can be started from command line :: + + hgtk commit + +or :: + + hgtk ci + +The syntax is :: + + hgtk commit [OPTIONS] [FILES] + +where [FILES] is one or more file that must be commited, if no files are +specified TortoiseHg commits all the modified files, and valid [OPTIONS] are: + +``-d``, ``--date`` + Use the specified date as commit date, if not specified the current date + and time is used. For a quick help on the format of date type:: + + hgtk help dates + + or :: + + hg help dates + +``-u``, ``--user`` + Use the specified user name as author of the commit, if not specified the + user set in repository or global settings is used. +    Changes since 0.7  ----------------- @@ -270,8 +304,9 @@
 * 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 +* :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 @@ -287,12 +322,12 @@
   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. +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. If you prefer the Qct @@ -317,3 +352,4 @@
 command. Qct was already doing both of these things, so this  will come as no surprise to Qct users.   +.. vim: noet ts=4
 
3
4
5
6
 
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
37
38
39
40
41
 
 
42
43
44
45
 
 
46
47
48
 
 
49
50
51
 
 
52
53
54
 
55
56
57
 
58
59
60
 
87
88
89
90
91
92
93
 
 
 
 
 
94
95
96
97
98
99
 
100
101
 
102
103
104
105
 
 
 
106
107
108
 
 
 
 
 
3
4
5
 
6
7
8
9
10
 
 
 
 
 
 
 
 
 
 
 
 
11
12
13
 
25
26
27
 
 
28
29
30
31
 
 
32
33
34
 
 
35
36
37
 
 
38
39
40
41
 
42
43
44
 
45
46
47
48
 
75
76
77
 
 
 
 
78
79
80
81
82
83
84
85
86
87
 
88
89
 
90
91
 
 
 
92
93
94
95
 
 
96
97
98
99
@@ -3,23 +3,11 @@
 ===============    .. module:: common.dialog - :synopsis: Common features to all the dialog + :synopsis: Common features to all the dialog    These features are common to many TortoiseHg tools, so we document them  here just once.   -Translations -============ - -The TortoiseHg tools use Python's -`gettext <http://docs.python.org/library/gettext.html>`_ library to -localize their text. To get localized dialogs, it is recommended that -you set the LANGUAGE environment variable to your locale of choice. - -The Windows shell extension context menus get their translations from -the Windows registry. Translations for many locales are available from -the TortoiseHG `wiki <http://bitbucket.org/tortoisehg/stable/wiki/install>`_. -  Geometry Restore  ================   @@ -37,24 +25,24 @@
 =====================    We define a few keyboard accelerators that all of the TortoiseHg tools support. - -:kbd:`CTRL-Q` + +: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-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-D` + visual diff of currently selected file or changeset   -:kbd:`CTRL-ENTER` - activation +:kbd:`Ctrl-Enter` + activation    :kbd:`F5` - refresh + 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 +(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.   @@ -87,22 +75,25 @@
 jump to the first row that matches the text you have entered thus far.  As you enter more characters, the search is refined.   -* :kbd:`CTRL-F` opens the search window explicitly -* :kbd:`CTRL-G` advances the search to the next match -* :kbd:`SHIFT-CTRL-G` searches backwards -* The mouse scroll wheel will advance forwards and backwards through matching lines +* :kbd:`Ctrl-F` opens the search window explicitly +* :kbd:`Ctrl-G` advances the search to the next match +* :kbd:`Shift-Ctrl-G` searches backwards +* The mouse scroll wheel will advance forwards and backwards through + matching lines    HG command dialog  =================    Many TortoiseHg tools use the *hgcmd* dialog to execute Mercurial -commands that could potentially be interactive. In release 0.8, this +commands that could potentially be interactive. In release 0.8, the  dialog was changed to draw all error messages in a dark red color to -give it more contrast with normal output messages. +give them more contrast from 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. +The dialog focuses its :guilabel:`close` button when the command has +completed, so a simple :kbd:`Enter` is all that is required to close +the window.   -*hgcmd* also responds appropriately to the global :kbd:`CTRL-W` and -more drastic :kbd:`CTRL-Q` accelerators. +*hgcmd* also responds appropriately to the global :kbd:`Ctrl-W` and +:kbd:`Ctrl-Q` keyboard accelerators. + +.. vim: noet ts=4
 
3
4
5
6
 
7
8
9
 
29
30
31
32
 
33
34
35
36
 
37
38
39
 
46
47
48
49
50
 
 
51
52
53
54
55
 
 
 
 
 
56
57
58
 
66
67
68
69
 
70
71
72
73
74
 
75
76
 
77
78
79
 
92
93
94
 
 
 
 
 
 
 
 
 
 
 
 
95
96
97
98
99
100
 
101
102
103
104
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
4
5
 
6
7
8
9
 
29
30
31
 
32
33
34
35
 
36
37
38
39
 
46
47
48
 
 
49
50
51
 
 
 
 
52
53
54
55
56
57
58
59
 
67
68
69
 
70
71
72
73
74
 
75
76
 
77
78
79
80
 
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
 
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
@@ -3,7 +3,7 @@
 ===================    .. module:: datamine.dialog - :synopsis: Dialog used to search in the history + :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, @@ -29,11 +29,11 @@
  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. + 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` @@ -46,13 +46,14 @@
  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). - +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  -------   @@ -66,14 +67,14 @@
  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 + :alt: Annotate tabs   - Annotate tabs + Annotate tabs      The revision graph has a simple context menu for opening the entire @@ -92,13 +93,44 @@
 Source) you can bring up a menu for showing two optional columns:  :guilabel:`filename` and :guilabel:`user`.   +Following Renames +~~~~~~~~~~~~~~~~~ + +The annotation data will automatically follow lines of code back through +copies and renames to find the initial changeset that introduced that +line. The graph log pane will not follow renames or copies +automtaically. Instead, when you click on a changeset in the revision +graph that involved a rename or copy event, a button will appear that +will allow you to follow the history graph back through the rename. +Clicking on the button will open a new tab with the older filename +annotated at the same changeset. +  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 + +From command line +----------------- + +The datamine tool can be started from command line :: + + hgtk datamine + +or :: + + hgtk annotate + +or :: + + hgtk blame + +The syntax is simple, no options or parameters are needed, except the global options. + +.. vim: noet ts=4
 
3
4
5
6
 
7
8
9
 
16
17
18
19
 
20
21
 
22
23
24
25
26
27
28
 
 
 
 
 
 
 
 
29
30
31
 
34
35
36
37
 
38
39
40
 
53
54
55
56
 
57
58
 
59
60
61
62
63
64
 
65
66
67
68
69
 
 
 
3
4
5
 
6
7
8
9
 
16
17
18
 
19
20
 
21
22
23
24
25
26
27
 
28
29
30
31
32
33
34
35
36
37
38
 
41
42
43
 
44
45
46
47
 
60
61
62
 
63
64
 
65
66
67
68
69
70
 
71
72
73
74
75
76
77
78
@@ -3,7 +3,7 @@
 ============================    .. module:: explorer - :synopsis: Windows explorer integration + :synopsis: Windows explorer integration    Overlay Icons  ------------- @@ -16,16 +16,23 @@
 (another project created by TortoiseSVN team).    .. figure:: figures/overlayicons.png - :alt: Overlay icons + :alt: Overlay icons   - Overlay icons in Icons view (this image shows release 0.7 overlays) + 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. - + +Release 0.8.1 introduced the ability to selectively disable overlay +icons in specific repositories. This can be done be editing the +:file:`.hg\\thgstatus` file inside the repository and replacing it's +contents with a single line containing:: + + @@noicons +  Performance Issues  ------------------  When the repository being viewed contains a large number of folders or @@ -34,7 +41,7 @@
 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.   @@ -53,17 +60,19 @@
 context sensitive, which varies according to the folder being viewed.    .. figure:: figures/contextmenu.png - :alt: Context menu + :alt: Context menu   - Context menu for a folder under Mercurial revision control (version 0.7) + 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. + +.. vim: noet ts=4
 
4
5
6
7
8
9
 
 
 
 
10
11
12
13
 
 
 
 
 
14
15
16
 
 
 
17
18
19
20
 
 
 
21
22
23
24
 
 
 
 
25
26
27
28
29
30
31
32
33
34
35
 
 
 
 
36
37
38
 
39
40
41
 
 
 
42
43
44
 
 
 
45
46
47
 
 
48
49
 
 
 
 
 
 
 
 
 
 
 
 
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
 
 
 
 
 
 
64
65
66
67
 
 
 
 
 
68
69
 
 
 
 
 
 
 
 
70
71
72
73
74
75
76
 
77
78
79
 
 
 
 
 
 
 
80
81
82
83
84
 
 
 
 
85
86
87
88
89
90
91
 
92
93
94
95
 
 
 
 
 
 
 
 
96
97
98
 
 
99
100
101
 
 
102
103
104
105
106
107
108
109
110
111
 
 
 
 
 
 
 
 
 
 
112
113
114
115
116
117
118
119
120
 
121
122
 
 
 
 
 
 
 
 
 
123
124
125
126
127
128
129
130
131
132
133
 
 
 
 
 
 
 
 
 
 
134
135
 
 
136
137
138
139
140
141
142
143
144
145
146
 
 
147
148
149
150
 
 
 
 
 
 
 
 
 
 
 
151
152
153
154
155
156
157
158
159
160
161
162
 
 
163
164
165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
167
168
169
 
 
 
 
170
171
172
173
174
175
 
 
 
 
 
 
 
 
176
177
178
179
180
181
182
183
 
 
 
184
185
186
 
 
 
 
 
187
188
189
 
 
 
190
191
192
 
 
 
 
 
193
194
195
196
197
198
199
200
201
202
 
 
 
 
 
203
204
205
 
 
 
 
 
 
 
 
 
 
4
5
6
 
 
 
7
8
9
10
11
12
 
 
13
14
15
16
17
18
19
 
20
21
22
23
24
 
 
25
26
27
28
29
 
 
30
31
32
33
34
35
 
 
36
 
 
 
 
 
 
37
38
39
40
41
 
 
42
43
 
 
44
45
46
47
 
 
48
49
50
51
 
 
52
53
54
 
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
 
 
 
 
 
 
 
 
69
 
 
70
71
72
73
74
75
76
77
 
 
 
78
79
80
81
82
83
 
84
85
86
87
88
89
90
91
92
93
 
94
 
 
 
95
96
 
 
97
98
99
100
101
102
103
104
105
 
 
 
106
107
108
109
110
111
 
112
 
 
 
113
114
 
 
 
115
116
117
118
119
120
121
122
123
124
 
125
126
127
128
 
129
130
131
132
 
 
 
133
 
 
 
 
134
135
136
137
138
139
140
141
142
143
144
145
 
146
 
 
 
 
 
147
148
 
149
150
151
152
153
154
155
156
157
158
 
 
 
 
 
 
 
 
 
 
159
160
161
162
163
164
165
166
167
168
169
 
170
171
172
173
 
174
 
 
 
 
 
 
 
175
176
177
 
 
 
178
179
180
181
182
183
184
185
186
187
188
189
190
 
 
191
 
 
 
 
 
 
 
192
193
194
 
 
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
 
 
211
212
213
214
215
216
 
 
 
 
217
218
219
220
221
222
223
224
225
226
 
 
227
 
 
 
228
229
230
231
 
 
232
233
234
235
236
237
 
 
238
239
240
241
 
 
242
243
244
245
246
247
248
 
 
 
249
 
 
 
 
250
251
252
253
254
255
 
 
256
257
258
259
260
261
262
263
264
@@ -4,202 +4,261 @@
     *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. + + 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. + + `Mercurial <http://mercurial.selenic.com/wiki/>`_, + `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 + + 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. + + 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/>`_. + + 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` :: + 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>`_.   - [extensions] - qct = C:\path\to\qct.py +*How can I use Qct with TortoiseHg, after version 0.7?*   - [tortoisehg] - extcommit = qct + 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:   - [qct] - path = "C:\Program Files\qct\qct.exe" + 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` ::   - 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. + [extensions] + qct = C:\path\to\qct.py   - In 0.9, hgtk ci will no longer launch Qct. We will drop support for any external commit tools. + [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 = + 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 ::   - [hgk] - path=C:\Program Files\TortoiseHg\scripts\hgk.cmd - vdiff=vdiff + @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::   - This allows you launch :command:`hg view` from the command line. + [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 + Add these lines to your personal :file:`Mercurial.ini` file ::   - 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`. + [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. + 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 + Add these lines to your personal :file:`Mercurial.ini` file ::   - 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. + [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. + + TortoiseHg 0.8.n 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 + + Upgrade to TortoiseHg 0.8.n    *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. + 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) + TortoiseHg gets configuration settings from two systems.   - These are configurables that are stored the Mercurial configuration system. :: + 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 + [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/>`_. + 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 + In some cases, yes. The gtools based dialogs (commit, status, + shelve) allow some font configuration. ::   - # make the integrated diff window appear at the bottom or side - # (applies to commit and status dialogs) - diffbottom = False + [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 + 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   - 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`. + * 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. + + 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. + + You must install svn-win32-1.6 command line tools, then add them to + your path. Then you must enable the + `convert <http://mercurial.selenic.com/wiki/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. + 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`.   - 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:: + 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.   - import sys - sys.path.append('C:\\path\\to\\module') + 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::   - Note that this will not work for modules distributed as .egg files; the supplied path must contain the - module's .py or .pyc files. + import sys + sys.path.append(r'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" - } + 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::   - You can find :file:`gtkrc` file in your TortoiseHg install directory: - i.e. :file:`C:\\Program Files\\TortoiseHg\\gtk\\etc\\gtk-2.0\\gtkrc` + 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` + +.. vim: noet ts=4
 
1
 
2
3
4
5
6
 
7
8
9
10
11
12
 
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
28
29
 
32
33
34
 
 
 
1
2
3
4
5
 
6
7
8
9
10
11
 
12
13
 
 
 
 
 
 
 
 
 
 
 
 
 
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
33
34
35
36
@@ -1,29 +1,30 @@
-.. TortoiseHG documentation master file, created by +.. 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! +Welcome to TortoiseHg's documentation!  ======================================    Contents:    .. toctree:: - :maxdepth: 2 + :maxdepth: 2   - preface - intro - common - explorer - commit - shelve - changelog - datamine - synchronize - serve - settings - recovery - faq + preface + intro + quick + common + explorer + commit + shelve + changelog + datamine + synchronize + serve + settings + recovery + faq    Indices and tables  ================== @@ -32,3 +33,4 @@
 * :ref:`modindex`  * :ref:`search`   +.. vim: noet ts=4
 
3
4
5
6
 
7
 
 
 
8
9
 
10
11
12
13
14
15
16
17
 
 
 
 
 
18
19
20
21
22
 
 
 
23
24
25
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
4
5
 
6
7
8
9
10
11
 
12
13
14
15
 
 
 
 
 
16
17
18
19
20
21
22
 
 
 
23
24
25
26
27
 
 
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
@@ -3,24 +3,100 @@
 =======================    .. module:: introduction - :synopsis: Introduce TortoiseHg and its various parts + :synopsis: Introduce TortoiseHg and its various parts   +What is TortoiseHg? +=================== +  TortoiseHg is a set of graphical tools and a shell extension for the -`Mercurial <http://www.selenic.com/mercurial>`_ distributed revision control +`Mercurial <http://mercurial.selenic.com/wiki/>`_ distributed revision control  system.    On Windows, - TortoiseHg consists of a shell extension, which provides overlay - icons and context menus in your file explorer, and a command line - program named hgtk.exe which can launch the TortoiseHg tools. - Binary packages of TortoiseHg for Windows come with Mercurial and a - merge tool and are thus completely ready for use "Out of the Box". + TortoiseHg consists of a shell extension, which provides overlay + icons and context menus in your file explorer, and a command line + program named hgtk.exe which can launch the TortoiseHg tools. + Binary packages of TortoiseHg for Windows come with Mercurial and a + merge tool and are thus completely ready for use "Out of the Box".    On Linux, - TortoiseHg consists of a command line hgtk script, and a Nautilus - extension which provides overlays and context menus in your file - explorer. + TortoiseHg consists of a command line hgtk script, and a Nautilus + extension which provides overlays and context menus in your file + explorer.    TortoiseHg is primarily written in Python and PyGtk (the Windows shell -extension being a noticeable exception). The hgtk script can be used -on any platform that supports PyGtk, including Mac OS X. +extension being a noticeable exception). The hgtk script and TortoiseHg +dialogs can be used on any platform that supports PyGtk, including Mac +OS X. + + +Installing TortoiseHg +===================== + +On Windows +---------- + +TortoiseHg comes with an easy to use installer. Double click on the installer +file and follow the instructions. The installer will take care of the rest. + +After installation a reboot is necessary. + +.. note:: + If you have an older (less than 0.8) version already installed, the + installer will ask that you to remove the previous version of + TortoiseHg, which must be removed from control panel. Removing + TortoiseOverlays is also recommended, if no other apps are using + them, but not strictly required. + + If you have 0.8 or later already installed, you must close all + instances of the ThgTaskBar application before installation can + procede. + + +Language settings +~~~~~~~~~~~~~~~~~ + +The TortoiseHg user interface has been translated into many languages. +You don't need to download a language pack. All the available languages +are shipped with the installer. Look in +:file:`C:\\Program Files\\TortoiseHg\\locale` for the available +languages. To enable a language just set the environment variable +``LANG`` to the desidered language, e.g. for italian ``SET LANG=it``. + +.. note:: + After setting LANG, if the standard GUI elements like :guilabel:`OK`, + :guilabel:`Apply` etc. still appear in English, it means that the + TortoiseHg installer did not include the translation component of GTK+ + for your locale. This was probably due to an incomplete translation + of TortoiseHg at the moment of release it. + +The Windows shell extension context menus get their translations from +the Windows registry. Translations for many locales are available from +the TortoiseHg `wiki <http://bitbucket.org/tortoisehg/stable/wiki/install>`_. +Once the desidered file is downloaded (rename it to :file:`.reg` if the +extension is :file:`.txt`), double-click on it and confirm all the requests. + +On Linux and Mac +---------------- + +RPM packages for Fedora are available on the +`Download <http://bitbucket.org/tortoisehg/stable/downloads/>`_ +page of the wiki. + +Deb packages for Ubuntu can be found at +`this <https://launchpad.net/~maxb/+archive/ppa>`_ or +`that <https://launchpad.net/~tortoisehg-ppa>`_ location. + +For MacOSX, no packages are available but you can run hgtk and all the +dialogs via the source install method. +`MacOSX <http://bitbucket.org/tortoisehg/stable/wiki/MacOSX>`_. + +Language settings +~~~~~~~~~~~~~~~~~ + +The TortoiseHg tools use Python's +`gettext <http://docs.python.org/library/gettext.html>`_ library to +localize their text. To get localized dialogs, it is recommended that +you set the LANGUAGE environment variable to your locale of choice. + +.. vim: noet ts=4
 
3
4
5
6
 
7
8
9
10
11
12
13
 
14
15
16
17
18
 
19
 
 
20
21
22
23
24
 
25
26
27
28
 
29
30
 
 
31
32
33
 
34
35
36
 
46
47
48
49
 
50
51
52
53
54
55
 
56
57
58
 
61
62
63
64
65
66
 
 
 
67
68
69
70
71
72
73
74
75
76
 
 
 
 
 
 
 
 
 
77
78
79
 
80
81
82
 
83
84
85
 
86
87
88
 
 
 
 
3
4
5
 
6
7
8
9
10
11
12
 
13
14
 
 
 
 
15
16
17
18
19
20
21
22
 
23
24
25
26
 
27
28
29
30
31
32
33
 
34
35
36
37
 
47
48
49
 
50
51
52
53
54
55
 
56
57
58
59
 
62
63
64
 
 
 
65
66
67
68
 
 
 
 
 
 
 
 
 
69
70
71
72
73
74
75
76
77
78
79
 
80
81
82
 
83
84
85
 
86
87
88
 
89
90
91
@@ -3,34 +3,35 @@
 =======    .. module:: preface - :synopsis: About this manual + :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 +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. +how to use it.   +You can find the most up to date version of this documentation at our +`web <http://bitbucket.org/tortoisehg/stable/downloads>`_ site.    Reading guide  =============   -This Preface explains a little about the TortoiseHG project, the +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 +The :doc:`intro`, explains what TortoiseHg is, what it does, where it  comes from and the basics for installing it on your PC.   +The :doc:`quick`, is a quick tutorial on how to start with TortoiseHg. +  The remaining chapters describe the tools that are part of TortoiseHg.   -TortoiseHG is free! +TortoiseHg is free!  ===================    TortoiseHg is released under @@ -46,13 +47,13 @@
 * `Users <https://lists.sourceforge.net/lists/listinfo/tortoisehg-discuss>`_  * `Developers <https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop>`_   -Our `wiki <http://bitbucket.org/tortoisehg/stable>`_ is on BitBucket. +And our `wiki <http://bitbucket.org/tortoisehg/stable/wiki/Home>`_ on BitBucket.    Acknowledgement  ===============    Thanks to the many people who contribute to the TortoiseHg project. It -take a community of developers, translators, and users to build a +takes a community of developers, translators, and users to build a  truly useful tool. Especially users who care enough to report bugs and  file feature requests.   @@ -61,28 +62,30 @@
   The following typographical conventions are used in this manual:   -:kbd:`CTRL-A` - Indicates a key, or combination of keys, to press. - +: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`. + 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. + Indicates a filename or directory name.    :command:`hgtk log` - Indicates a command to enter into command window. + Indicates a command to enter into command window.    .. note:: - This is a note. + This is a note.    .. warning:: - An important note. Pay attention. + An important note. Pay attention. + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source/​quick.txt Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
@@ -0,0 +1,118 @@
+============================== +A quick tour for the impatient +============================== + +.. module:: tour + :synopsis: A Gentle Introduction to Using TortoiseHg on Windows + +One of the great things about Mercurial is that there are lots of different +`Collaboration Models <http://hgbook.red-bean.com/read/file-names-and-pattern-matching.html>`_. +The following describes just one of those ways: a single central repository. + +To get started, suppose you volunteer to create the first version. There are +`ways of importing already existing repositories <http://mercurial.selenic.com/wiki/RepositoryConversion>`_ +but lets assume we're starting from scratch. First you need to make sure +that you are correctly identified in TortoiseHg. You do this by +adjusting the global settings of TortoiseHg. Try right-clicking your +source folder and following +:menuselection:`TortoiseHg --> Global Settings` + +.. figure:: figures/contextmenu.png + :alt: Context Menu + +From there you should be able to find what TortoiseHg thinks your name +is, and correct it. + +.. note:: + If you forget to set your name TortoiseHg will ask you for it at the + first *commit*, when the name is first required. + +Create the repository on your local machine by using the +:guilabel:`Create Repository Here` selection above. Mercurial places a +subdirectory in your folder called :file:`.hg`. This is where it keeps +all its versioning information. It is called the *repository*, and the +directory containing the repository is called the *working directory*. +You never specify the :file:`.hg` directory. It is mentioned here just +so you'll better understand how Mercurial is working. + +Add the files contained in the folder by following the menu +:menuselection:`TortoiseHg --> Add Files`. + +.. {{images/image008.gif}} + +Commit to your local repository by right-clicking anywhere in the +folder, or on the folder itself, and then selecting +:guilabel:`HG Commit ...`. + +.. {{images/image001.png}} + +Now you are ready to share your work. You do this by making a copy of +your repository in a public place that everyone in your group can +access. Mercurial calls this *cloning your repository*. Clone your +repository to a common area, such as a shared drive or web site, which +will be the merge point for the team. + +.. {{images/image003.gif}} + +Other team members will then work from this clone. + +Fetching from the group repository +================================== + +You want to start collaborating with your team. They tell you something +like *fetch the repository from x*. What does it mean? It means that +you want to make a copy of the repository saved at x on your local +machine. Mercurial calls this cloning and has a special interface for +it. Right click in the directory where you want your copy + +.. {{images/Clone.gif}} + +Working with your repository +============================ + +Suppose you've introduced some changes. It is easy to see that there are +a couple of directories with changes pending. You can traverse the +directories to find specific changes and commit them from Explorer. A +quicker way is to use the commit tool: + +.. {{images/image001.png}} + +The commit tool gives you a way to see differences or you can use your +visual difference tool (kdiff). You may commit many times before +synchronizing with the group repository. + +.. figure:: figures/commit.png + :alt: Commit dialog + +When you're ready to publish your changes, you + +1. commit your changes to your local repository, if you haven't already. +2. pull changes from the group repository into your repository +3. merge and commit into your local repository +4. make sure your work still builds and passes your extensive test suite +5. push your changes to the group repository. + +Which may sound complicated, but it is just pushing the buttons on the +synchronize tool. + +.. {{images/image005.gif}} + +Which makes the synchronize tool come up: + +.. figure:: figures/synchronize.png + :alt: Synchronize dialog + + +:guilabel:`Incoming` + show me what changes in the group repository that are not in my repository +:guilabel:`Pull` + bring them on over and start merging +:guilabel:`Outgoing` + show me what is different in my repository compared to the group repository. +:guilabel:`Push` + make my changes the current changeset (tip) in the group repository. + +Mercurial makes collaboration easy, fast, and productive. +Learn more at Mercurial's `wiki <http://mercurial.selenic.com/wiki/>`_. + +.. vim: noet ts=4
 
3
4
5
6
 
7
8
9
 
10
11
12
13
14
15
16
 
 
 
17
18
19
20
 
 
21
22
23
24
 
 
25
26
27
28
 
 
29
 
 
3
4
5
 
6
7
8
 
9
10
11
12
13
 
 
 
14
15
16
17
18
 
 
19
20
21
22
 
 
23
24
25
26
 
 
27
28
29
30
@@ -3,27 +3,28 @@
 ===================    .. module:: recovery.dialog - :synopsis: Dialog used to perform recovery operations + :synopsis: Dialog used to perform recovery operations    .. figure:: figures/recover.png - :alt: Recovery dialog + :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. + :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. + :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. + :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 + :command:`hg verify` - perform a consistency check of the contents of your + repository   +.. vim: noet ts=4
 
3
4
5
6
 
 
 
 
7
8
9
10
11
12
13
14
 
15
16
17
 
45
46
47
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
50
51
52
 
 
 
3
4
5
 
6
7
8
9
10
11
12
13
 
 
 
 
14
15
16
17
 
45
46
47
 
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
@@ -3,15 +3,15 @@
 ================    .. module:: serve.dialog - :synopsis: Dialog used to start/stop the web server + :synopsis: Dialog used to start/stop the web server + +.. figure:: figures/serve.png + :alt: Web server dialog    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 +configure your server to allow it).    :guilabel:`Start`   start the web server @@ -45,8 +45,28 @@
 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. - + +From command line +----------------- + +The server tool can be started from command line :: + + hgtk serve + + +The syntax is :: + + hgtk serve [OPTIONS] + +The valid [OPTIONS] are: + +``--webdir-conf`` + It specifies the name of the webdir config file. See above for details. + +  Changes since 0.7  -----------------  * Improved error handling  * i18n fixes + +.. vim: noet ts=4
 
3
4
5
6
 
7
8
9
 
10
11
 
12
13
14
 
40
41
42
43
 
44
45
46
 
58
59
60
61
 
62
63
64
65
 
 
 
66
67
68
69
70
71
72
 
73
74
75
 
80
81
82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
4
5
 
6
7
8
 
9
10
 
11
12
13
14
 
40
41
42
 
43
44
45
46
 
58
59
60
 
61
62
63
64
 
65
66
67
68
69
70
71
72
73
 
74
75
76
77
 
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
@@ -3,12 +3,12 @@
 ===================    .. module:: settings.dialog - :synopsis: Dialog used to set preferences + :synopsis: Dialog used to set preferences    .. figure:: figures/settings.png - :alt: Settings dialog + :alt: Settings dialog   - Settings dialog + Settings dialog    The Settings dialog is used to configure both TortoiseHg and the  underlying Mercurial DVCS. Since TortoiseHg uses Mercurial's underlying @@ -40,7 +40,7 @@
   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 @@ -58,18 +58,20 @@
 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 +Every tab but :guilabel:`Paths` 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. +configuring and its default value. The description of the currently +focused configurable is also shown in a text box at the bottom of the +dialog.    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 @@ -80,3 +82,276 @@
 :guilabel:`TortoiseHg`, :guilabel:`Commit`, :guilabel:`Changelog`, which  are specifically for TortoiseHg).   +TortoiseHg +---------- + +:guilabel:`3-way Merge Tool:` + Graphical merge program for resolving merge conflicts. If left + unspecified, Mercurial will use the first applicable tool it finds + on your system or use its internal merge tool that leaves conflict + markers in place. Chose internal:merge to force conflict markers, + internal:prompt to always select local or other, or internal:dump + to leave files in the working directory for manual merging. + +:guilabel:`Visual Diff Command:` + Specify visual diff tool; must be an extdiff command. + +:guilabel:`Skip Diff Window:` + Bypass the builtin visual diff dialog and directly use your + visual diff tool's directory diff feature. Only enable this + feature if you know your diff tool has a valid extdiff + configuration. Default: False. + +:guilabel:`Visual Editor:` + Specify the visual editor used to view files, etc. + +:guilabel:`CLI Editor:` + The editor to use during a commit and other + instances where Mercurial needs multiline input from + the user. Only used by command line interface commands. + +:guilabel:`Tab Width:` + Specify the number of spaces that tabs expand to in various + TortoiseHg windows. Default: Not expanded. + +:guilabel:`Max Diff Size:` + The maximum size file (in KB) that TortoiseHg will + show changes for in the changelog, status, and commit windows. + A value of zero implies no limit. Default: 1024 (1MB). + +:guilabel:`Bottom Diffs:` + Show the diff panel below the file list in status, shelve, and + commit dialogs. + Default: False (show diffs to right of file list). + +Commit +------ + +:guilabel:`Username:` + Name associated with commits. + +:guilabel:`External Commit Tool:` + Select commit tool launched by TortoiseHg. (Qct is no longer + distributed as part of TortoiseHg). + Default: None (use the builtin tool). [DEPRECATED] + +:guilabel:`Summary Line Length:` + Maximum length of the commit message summary line. + If set, TortoiseHg will issue a warning if the + summary line is too long or not separated by a + blank line. Default: 0 (unenforced). + +:guilabel:`Message Line Length:` + Word wrap length of the commit message. If + set, the popup menu can be used to format + the message and a warning will be issued + if any lines are too long at commit. + Default: 0 (unenforced). + +Changelog +--------- + +:guilabel:`Author Coloring:` + Color changesets by author name. If not enabled, + the changes are colored green for merge, red for + non-trivial parents, black for normal. + Default: False. + +:guilabel:`Long Summary:` + If true, concatenate multiple lines of changeset summary + until they reach 80 characters. + Default: False. + +:guilabel:`Log Batch Size:` + The number of revisions to read and display in the + changelog viewer in a single batch. + Default: 500. + +:guilabel:`Copy Hash:` + Allow the changelog viewer to copy the changeset hash + of the currently selected changeset into the clipboard. + Default: False. + +Sync +---- + +:guilabel:`After pull operation:` + Operation which is performed directly after a successful pull. + update equates to pull --update, fetch equates to the fetch + extension, rebase equates to pull --rebase. Default: none. + +:guilabel:`Remote repository paths` + In this pane you can configure aliases for repositories that you + frequently synchronize with. Mercurial will add a *default* alias + to the clone source automatically. All configured path aliases will + be listed in the Synchronize tool path drop-down box, and they can + be used as short-cuts on the command line. + +Web +--- + +:guilabel:`Name:` + Repository name to use in the web interface. + Default is the working directory. + +:guilabel:`Description:` + Textual description of the repository's purpose or + contents. + +:guilabel:`Contact:` + Name or email address of the person in charge of the + repository. + +:guilabel:`Style:` + Which template map style to use. + +:guilabel:`Archive Formats:` + Comma separated list of archive formats allowed for + downloading. + +:guilabel:`Port:` + Port to listen on. + +:guilabel:`Push Requires SSL:` + Whether to require that inbound pushes be transported + over SSL to prevent password sniffing. + +:guilabel:`Stripes:` + How many lines a "zebra stripe" should span in multiline output. + Default is 1; set to 0 to disable. + +:guilabel:`Max Files:` + Maximum number of files to list per changeset. + +:guilabel:`Max Changes:` + Maximum number of changes to list on the changelog. + +:guilabel:`Allow Push:` + Whether to allow pushing to the repository. If empty or not + set, push is not allowed. If the special value "*", any remote + user can push, including unauthenticated users. Otherwise, the + remote user must have been authenticated, and the authenticated + user name must be present in this list (separated by whitespace + or ","). The contents of the allow_push list are examined after + the deny_push list. + +:guilabel:`Deny Push:` + Whether to deny pushing to the repository. If empty or not set, + push is not denied. If the special value "*", all remote users + are denied push. Otherwise, unauthenticated users are all + denied, and any authenticated user name present in this list + (separated by whitespace or ",") is also denied. The contents + of the deny_push list are examined before the allow_push list. + +:guilabel:`Encoding:` + Character encoding name. + +Proxy +----- + +:guilabel:`Host:` + Host name and (optional) port of proxy server, for + example "myproxy:8000". + +:guilabel:`Bypass List:` + Optional. Comma-separated list of host names that + should bypass the proxy. + +:guilabel:`Password:` + Optional. Password to authenticate with at the + proxy server. + +:guilabel:`User:` + Optional. User name to authenticate with at the + proxy server. + + +Email +----- + +:guilabel:`From:` + Email address to use in the "From" header and for the SMTP envelope. + +:guilabel:`To:` + Comma-separated list of recipient email addresses. + +:guilabel:`Cc:` + Comma-separated list of carbon copy recipient email + addresses. + +:guilabel:`Bcc:` + Comma-separated list of blind carbon copy recipient + email addresses. + +:guilabel:`method:` + Optional. Method to use to send email messages. If value is "smtp" (default), + use SMTP (configured below). Otherwise, use as name of program to run that + acts like sendmail (takes "-f" option for sender, list of recipients on + command line, message on stdin). Normally, setting this to "sendmail" or + "/usr/sbin/sendmail" is enough to use sendmail to send messages. + +:guilabel:`SMTP Host:` + Host name of mail server. + +:guilabel:`SMTP Port:` + Port to connect to on mail server. + Default: 25. + +:guilabel:`SMTP TLS:` + Connect to mail server using TLS. + Default: False. + +:guilabel:`SMTP Username:` + Username to authenticate to mail server with. + +:guilabel:`SMTP Password:` + Password to authenticate to mail server with. + +:guilabel:`Local Hostname:` + Hostname the sender can use to identify itself to the mail server. + + +Diff +---- + +:guilabel:`Git Format:` + Use git extended diff header format. + Default: False. + +:guilabel:`No Dates:` + Do not include modification dates in diff headers. + Default: False. + +:guilabel:`Show Function:` + Show which function each change is in. + Default: False. + +:guilabel:`Ignore White Space:` + Ignore white space when comparing lines. + Default: False. + +:guilabel:`Ignore WS Amount:` + Ignore changes in the amount of white space. + Default: False. + +:guilabel:`Ignore Blank Lines:` + Ignore changes whose lines are all blank. + Default: False. + + +From command line +================= + +The setting dialog can be started from command line :: + + hgtk repoconfig + +for the repository settings or :: + + hgtk userconfig + +for the user configuration. + +The syntax is simple, no options or parameters are needed, except the global options. + +.. vim: noet ts=4
 
2
3
4
5
6
 
 
7
8
9
10
11
12
 
 
 
 
 
13
14
 
15
16
 
17
18
19
20
21
22
23
 
24
25
26
27
28
 
 
29
30
31
 
39
40
41
42
43
 
 
44
45
46
47
 
 
 
48
49
50
51
 
52
53
54
 
60
61
62
63
 
64
65
66
 
67
68
69
 
102
103
104
105
 
106
107
108
109
110
 
111
112
113
 
119
120
121
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
3
4
 
 
5
6
7
8
 
 
 
 
9
10
11
12
13
14
 
15
16
 
17
18
19
20
21
22
23
 
24
25
26
27
 
 
28
29
30
31
32
 
40
41
42
 
 
43
44
45
 
 
 
46
47
48
49
50
51
 
52
53
54
55
 
61
62
63
 
64
65
66
 
67
68
69
70
 
103
104
105
 
106
107
108
109
110
 
111
112
113
114
 
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
@@ -2,30 +2,31 @@
 TortoiseHg Shelve Tool  ======================   -.. module:: commit.dialog - :synopsis: Dialog used to perform shelve/unshelve operations +.. module:: shelve.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/>`_. - + 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 + :alt: Shelve dialog   - 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. + 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` @@ -39,16 +40,16 @@
  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. + 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. - + 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  ----------------   @@ -60,10 +61,10 @@
 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 from record/commit?  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   @@ -102,12 +103,12 @@
 Keyboard navigation  -------------------   -:guilabel:`CTRL-C` +: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 @@ -119,3 +120,19 @@
   * :menuselection:`TortoiseHg --> Bottom Diffs`  * :menuselection:`TortoiseHg --> Tab Width` + +From command line +----------------- + +The shelve tool can be started from command line :: + + hgtk shelve + +or :: + + hgtk unshelve + +The syntax is simple, no options or parameters are needed, except the global options. + + +.. vim: noet ts=4
Show Entire File doc/​source/​synchronize.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
 
805
806
807
808
 
809
810
811
 
820
821
822
823
 
824
825
826
 
841
842
843
844
845
 
 
846
847
848
 
915
916
917
918
 
919
920
921
 
954
955
956
957
 
 
 
 
958
959
960
 
981
982
983
984
985
986
987
988
 
805
806
807
 
808
809
810
811
 
820
821
822
 
823
824
825
826
 
841
842
843
 
 
844
845
846
847
848
 
915
916
917
 
918
919
920
921
 
954
955
956
 
957
958
959
960
961
962
963
 
984
985
986
 
 
987
988
989
@@ -805,7 +805,7 @@
  widgets = []     descframe = gtk.Frame(_('Description')) - descframe.set_border_width(10) + descframe.set_border_width(4)   desctext = gtk.TextView()   desctext.set_wrap_mode(gtk.WRAP_WORD)   desctext.set_editable(False) @@ -820,7 +820,7 @@
  table = gtk.Table(len(info), 2, False)   vbox.pack_start(table, False, False, 2)   if info != _paths_info: - vbox.pack_start(gtk.Label(), True, True, 2) + vbox.pack_start(gtk.Label(), True, True, 0)   vbox.pack_start(descframe, False, False, 2)   frame.add(vbox)   @@ -841,8 +841,8 @@
  eventbox = gtk.EventBox()   eventbox.set_visible_window(False)   eventbox.add(lbl) - table.attach(eventbox, 0, 1, row, row+1, gtk.FILL, 0, 4, 3) - table.attach(combo, 1, 2, row, row+1, gtk.FILL|gtk.EXPAND, 0, 4, 3) + table.attach(eventbox, 0, 1, row, row+1, gtk.FILL, 0, 4, 2) + table.attach(combo, 1, 2, row, row+1, gtk.FILL|gtk.EXPAND, 0, 4, 2)   self.tooltips.set_tip(eventbox, tooltip)     self.pages.append((vbox, info, widgets)) @@ -915,7 +915,7 @@
    def add_page(self, notebook, tab):   frame = gtk.Frame() - frame.set_border_width(10) + frame.set_border_width(4)   frame.show()     label = gtk.Label(tab) @@ -954,7 +954,10 @@
  pass   return   if section not in list(self.ini): - self.ini.new_namespace(section) + if hasattr(self.ini, '_new_namespace'): + self.ini._new_namespace(section) + else: + self.ini.new_namespace(section)   self.ini[section][key] = newvalue   if not keephistory:   return @@ -981,8 +984,6 @@
  cpath = '.'.join(['paths', name])   self.record_new_value(cpath, path, False)   refreshlist.append(name) - if 'paths' not in list(self.ini): - self.ini.new_namespace('paths')   for name in list(self.ini.paths):   if name not in refreshlist:   del self.ini['paths'][name]