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 542b8de0d864

Parents c21b2d5cffe4

Parents c356322db3b7

by Steve Borho

Changes to 69 files · Browse files at 542b8de0d864 Showing diff from parent c21b2d5cffe4 c356322db3b7 Diff from another changeset...

Change 1 of 1 Show Entire File .hgignore Stacked
 
5
6
7
 
8
9
10
 
5
6
7
8
9
10
11
@@ -5,6 +5,7 @@
 *.pyc  thgutil/__version__.py  build/ +build-ja/  dist/  Output/  .*.swp
Change 1 of 2 Show Entire File doc/​Build.bat Stacked
 
2
3
4
5
6
7
8
 
 
 
 
 
 
 
9
10
11
 
13
14
15
16
 
17
18
19
20
21
 
 
 
 
22
23
24
 
2
3
4
 
5
 
 
6
7
8
9
10
11
12
13
14
15
 
17
18
19
 
20
21
22
23
24
25
26
27
28
29
30
31
32
@@ -2,10 +2,14 @@
   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 OUTPUTDIRSUFFIX= +if not "%2" == "" ( + set OUTPUTDIRSUFFIX=-%2 +) +set OUTPUTDIR=build%OUTPUTDIRSUFFIX% +set ALLSPHINXOPTS=-d %OUTPUTDIR%/doctrees %SPHINXOPTS% source%OUTPUTDIRSUFFIX% +if not "%PAPER%" == "" (   set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%  )   @@ -13,12 +17,16 @@
   if "%1" == "help" (   :help - echo.Please use `make ^<target^>` where ^<target^> is one of + echo.Please use `Build.bat ^<target^> [^<lang^>]` 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 + echo. + echo.and where ^<lang^> is one of + echo. en to make target in English + echo. ja to make target in Japanese   goto end  )  
Show Entire File doc/​source-ja/​.static/​.keep Stacked
(No changes)
Change 1 of 1 Show Entire File doc/​source-ja/​changelog.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
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
@@ -0,0 +1,242 @@
+Changelog +========= + +.. module:: changelog.dialog + :synopsis: Dialog used to view log + +The changelog tool is primarily used to visualize the revision history +of your repository. It presents a graph of the revision history, showing +the parent/child relationship of each change. At each revision you can +view the files that were modified and the contents of those changes. +These are the features that nearly all revision history browsers provide. + +The TortoiseHg changelog browser offers much more. Since it is our best +tool for viewing and selecting changesets, we use it to perform nearly +all our tasks that involve changeset manipulation. + +.. figure:: figures/log.png + :alt: Changelog + + Changelog viewer dialog + +The toolbar buttons from left to right: + + :guilabel:`Refresh` + Reload the revision history (if you commit in another window, etc) + :guilabel:`Filter` + Open revision filter dialog. The toolbar button also has + drop-down for common filters + :guilabel:`Datamine` + Open datamine application for history searches and file annotations + :guilabel:`Other Parent` + Toggles parent revision when viewing merge changesets + :guilabel:`Synchronize` + Opens synchronize tool to communicate changes with other repositories + + +Revision Graph Details +---------------------- + +The graph column shows the child-parent relationships between revisions +in your repository history. This column auto-sizes for as many lines of +ancestry that are required to visualize the revisions you have loaded. +The column does have a hard-limit width to prevent some degenerative +cases from breaking the viewer. + +On the right of the revision graph are three buttons. From top to bottom +these are: + + :guilabel:`column toggles` + toggle the display of columns in the graph + :guilabel:`next-N revisions` + load the next N revisions into the graph + :guilabel:`all revisions` + load all remaining revisions into the graph + +The column visibility toggles are sticky settings. + + +Revision Context Menus +---------------------- + +Right-clicking on a revision in the (top) graph pane will bring up the +revision context menu. + + :guilabel:`visualize change` + open this change in your visual diff tool + :guilabel:`display change` + open this changeset in the changeset browser (more below) + :guilabel:`diff to local` + display changes (visual diff) between this revision and your + current working directory + :guilabel:`update` + update your working directory to this revision [#rcm1]_ + :guilabel:`merge with` + merge with this revision [#rcm2]_ + :guilabel:`copy hash` + copy current revision's full hash to the clipboard + :guilabel:`export patch` + generate a patch file containing this revision's changes + :guilabel:`email patch` + send this revision's changes to email recipient [#rcm3]_ + :guilabel:`bundle rev:tip` + create a bundle with all revs from selected to tip + :guilabel:`add/remove tag` + opens the TortoiseHg tag dialog with this revision selected + :guilabel:`backout` + create a backout changeset for selected revision + :guilabel:`revert` + revert working copy to this revision's contents, without + updating working directory parent revision. Use with care. + :guilabel:`strip` + Remove the selected revision and all of it's descendants from the + repository [#rcm4]_ + + +If you right-click on a row other than the one that was currently +selected, you get a different context menu. This context menu has +commands that deal with arbitrary revision ranges. + + :guilabel:`diff with selected` + Opens status viewer with cumulative changes of the range of + changesets. + :guilabel:`visual diff with selected` [#rcm5]_ + Opens visual diff window with cumulative changes of the range + of changesets. + :guilabel:`email from here to selected` + Opens email dialog with range of changesets. + :guilabel:`bundle from here to selected` + Creates a bundle file with range of changesets. + :guilabel:`merge with selected` [#rcm6]_ + Merges this revision with the current working directory parent + revision. This menu item is only sensitive when the working + parent is the current selected revision. + +.. [#rcm1] Opens the TortoiseHg update/checkout dialog with this revision selected. +.. [#rcm2] Opens the TortoiseHg merge dialog with this revision selected. +.. [#rcm3] Opens the TortoiseHg email dialog with this revision selected. +.. [#rcm4] The strip command will store the stripped revisions in a bundle file + that can later be reapplied. + See `also <http://mercurial.selenic.com/wiki/EditingHistory>`_. +.. [#rcm5] :menuselection:`Global Settings --> TortoiseHg --> Visual Diff Command` +.. [#rcm6] Only sensitive if the selected revision is your current working + directory parent + +Revision Filter Dialog +---------------------- + +.. figure:: figures/logfilter.jpg + :alt: Revision filter dialog + +File Context Menus +------------------ + +Right-clicking on filenames in the file list (bottom left) pane will +bring up a context menu for the selected file: + + :guilabel:`visual diff` + Open this revision of the file in your visual editor [#flcm1]_ + :guilabel:`diff to local` + Visualize differences between this revision and your checked + out version + :guilabel:`save at revision` + Write this revision of the file to specified location + :guilabel:`file history` + Show revisions that modified this file [#flcm2]_ + :guilabel:`annotate file` + Open this file in the datamine app, annotated at this revision + :guilabel:`revert file contents` + Checkout this specific revision of this file [#flcm3]_ + +.. [#flcm1] :menuselection:`Global Settings --> TortoiseHg --> Visual Editor` +.. [#flcm2] Does not show revisions where a file was deleted, as this is only a + manifest change, it does not modify the file's history. +.. [#flcm3] The new contents will appear as local changes and must be committed. + + +Changeset browser +----------------- + +The changeset browser will only show a single file's diffs at a time, as +a performance optimization. If you would like to see all of the file +diffs at once, click on the :guilabel:`[All Files]` row. The changeset +browser will also skip displaying diffs for files which are above a +maximum limit. See +:menuselection:`Global Settings --> TortoiseHg --> Max Diff Size` + +The changelog and datamine tools can open the changeset browser to view +a single revision or the combined effect of a range of revisions. The +changeset browser is very similar to the commit and shelve tools. It has +a file list on the left of all files that have been changed, and a diff +pane on the right with the changes to each file. + +When opened in the 'diff change with' mode, you can select files and +hunks that you wish to extract from the changeset(s) you are browsing +and write them to a patch file using the :guilabel:`Save as` toolbar +button. This is a very efficient way to cherry pick changes from a +repository. This changeset browser also supports the :kbd:`Ctrl-C` +keyboard accelerator to copy hightlighted diff hunks to the clipboard. + +Unfortunately, TortoiseHg still does not have a dialog for importing +changes into a repository, so this must be done on the command line with +the :command:`hg import` command. + +Keyboard navigation +------------------- + +:kbd:`Ctrl-P` + Zoom to the working directory parent revision +:kbd:`Ctrl-D` + Display visual diffs for selected changeset or file + + +Configurables +------------- + +The changelog browser has a few configurable options that can be set in +the TortoiseHg Settings dialog on the Changelog tab. + + :guilabel:`Author coloring` + If true, each author's changeset will be given a unique color + :guilabel:`Long Summary` + Concatenate commit message lines until 80 chars are reached + :guilabel:`Graph batch limit` + Number of revisions to read in each batch load + :guilabel:`Copy Hash` + Copy a revision's changeset id hash to the clipboard when selected + +The exact colors given to particular users can be configured by adding +lines like these to your :file:`Mercurial.ini` file: :: + + [tortoisehg] + authorcolor.USERNAME = color + +The changelog browser also respects the following settings on the +TortoiseHg tab: + + :guilabel:`Tab Width` + Number of spaces to expand tabs in diffs + :guilabel:`Max Diff Size` + Maximum size of file to be diffed + :guilabel:`Bottom Diffs` + Show diffs below file list + + +From command line +----------------- + +The changelog viewer can be started from command line :: + + hgtk log [OPTIONS] [FILE] + + aliases: history + + changelog viewer + + options: + + -l --limit limit number of changes displayed + + use "hgtk -v help log" to show global options + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​clone.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
 
@@ -0,0 +1,52 @@
+Clone a repository +======================= + +.. module:: clone.dialog + :synopsis: Dialog used to clone a repository + +To clone a repository you have to run the clone dialog. +From the explorer context menu select :menuselection:`TortoiseHg... --> Clone a repository` +or type :command:`hgtk clone`. + +.. figure:: figures/clone.png + :alt: Clone dialog + +:guilabel:`Source Path` + It is the path (or URL) of the repository that will be cloned. Use the :guilabel:`Browse...` to + choose a local folder. +:guilabel:`Destination Path` + It is the path of destination directory, a folder with the same name of source repository will + be created within this directory. +:guilabel:`Clone To Revision` + You can limit the clone up to this revision. Even the tags created after this revision will not be + imported. +:guilabel:`do not update the new working directory` + If checked, after the clone the working directory will be empty. It is useful when you have to clone + a repository with the purpose of central repository, or backup, where you have only, in the future, + to *push* and *pull*. +:guilabel:`use pull protocol to copy metadata` + When the source and destination are on the same filesystem, Mercurial tries to use hardlinks. Some + filesystems, such as AFS implement hardlink incorrectly, but do not report errors. Use this option + to avoid hardlinks. +:guilabel:`use uncompressed transfer` + To use uncompressed transfer (fast over LAN). +:guilabel:`use proxy server` + To use the proxy server configured in :menuselection:`TortoiseHg... --> Global Settings --> Proxy`. + This is enabled only if a proxy is configured. +:guilabel:`Remote Cmd` + Specify a Mercurial command to run on the remote side. + +From command line +----------------- + +The clone tool can be started from command line :: + + hgtk clone + +The syntax is :: + + hgtk clone [SOURCE] [DEST] + +where [SOURCE] and [DEST] are, the paths of source repository and destination folder. + +.. vim: noet ts=4 \ No newline at end of file
Change 1 of 1 Show Entire File doc/​source-ja/​commit.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
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
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
@@ -0,0 +1,384 @@
+Commit +====== + +.. 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 defaults to the top level shell 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 buttons: + + :guilabel:`Refresh` + Reload the state of the working directory. It tries to retain + check and selection state across refresh. + :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. If merging, it + allows you to select the revert parent. + :guilabel:`Add` + Add checked files that were in unknown '?' or ignored 'I' state. + :guilabel:`Move` + Move checked files to specified target directory in versioned + manner. + :guilabel:`Remove` + Delete checked unversioned files and/or remove (mark as deleted) any + versioned files. + +Below the toolbar are useful widgets: + + :guilabel:`Branch dialog` + Shows the current branch name of the working directory. Normally + this is informational only, but pressing this button opens up a + branch maintenance dialog. Do not use this feature unless you + understand Mercurial's + `named branches <http://mercurial.selenic.com/wiki/NamedBranches>`_. + :guilabel:`Recent Commit Messages` + A drop-down list of the 10 most recent commit messages. The + the drop-down list is filled the first time it is opened. + :guilabel:`QNew` + If you have enabled the MQ extension, there will also be a text + entry for a new patch name. Entering a patch name switches the + commit tool into 'QNew' mode. + + +The file list has four columns: + + 1) A checkbox that indicates whether the file is selected for an + operation. The toolbar buttons only operate on checked files. + "Partially" selected files have a special check state. This + column header is checkable, it will toggle the file selection + states. + 2) The :guilabel:`st` column holds the status of the file, defined + by Mercurial's status command, one of 'MARD?IC'. + 3) The :guilabel:`ms` column holds the merge state of the file, + defined by Mercurial's resolve command, one of ' RU'. See the + merge section below. + 4) The canonical path of the file (relative to the repository root) + +Below the file list are checkboxes that toggle the display of the +various classes of files {modified, added, removed, deleted, unknown, +clean, ignored}. These check boxes will be disabled if the commit tool +was given a specific set of files and/or directories. + +*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. + +*Unknown* files are not tracked by Mercurial, but they also do not match +any ignore filters you have configured. Unknown files are shown by +default because they are usually files that need to be added to revision +control. It is recommended that you keep your ignore filters up to date +to ensure that is the case. The context menu of unknown files has an +option open the ignore pattern tool. + +*Clean* files are tracked files that have not been modified, while +*Ignored* files are untracked files that match a configured ignore +pattern. Neither of those file types are shown by default, unless a the +user includes such a file in a selection (explorer) or provides the file +on the command line. + + +Change Selection +---------------- + +So what does it mean when we say 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? +^^^^^^^^^^^^^^^^^^^^^^^ + +When you have more than a single coherent change in 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 is 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 hunks in checked files 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). Files which are not partially selected avoid the +entire *backup, revert, patch, commit, recover* round trip and instead +are committed 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. 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. The clipboard contents will always be a valid patch. + + +File Context Menus +------------------ + +By right clicking on a file in the file list, you will get a context +menu of commands that are applicable to the selected file. If multiple +files are selected, the context menu only applies to the first selected +file. + +If you have configured a visual editor (in +:menuselection:`Global Settings --> TortoiseHg --> Visual Editor`) +this includes 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 is a copy or rename of a +revisioned file) or to configure the repository's ignore filter (if the +unknown file should never be revisioned and you want Mercurial to ignore +it). + + +Merging +------- + +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, since 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. + +To undo a failed merge attempt, you must tell Mercurial to remove the +second parent from your working directory. This usually means +performing a clean update of the first parent. The merge tool has an +:guilabel:`Undo` button which does exactly that. The recovery tool also +has a :guilabel:`Clean` button that does the same thing. + +Once you have your working directory back at one parent revision, you +may start the merge process again. + + +Commit Message Pane +------------------- + +If your project has guidelines for commit message format, you can +configure those in the settings tool. The commit tool will enforce this +policy at commit time, and also has the ability to apply the policy to +the current message. + +The commit message pane has special context menu options: + + :guilabel:`Paste Filenames`: + Pastes checked filenames into the commit message at the cursor. + :guilabel:`Apply Format`: + Apply configured message wrap policy to current message. + :guilabel:`Configure Format`: + Opens the settings dialog to the :guilabel:`Commit` tab. + +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. + +QNew Mode +--------- + +Newly added in 0.8, the commit tool can be used to create a new patch +for your patch queue. If you have the MQ extension enabled, a text +entry will be inserted between the branch maintenance button and the +message history drop-down box. If you enter a filename in this entry +the commit tool will switch out of *commit* or *qrefresh* mode into +*qnew* mode. In *qnew* mode, the commit tool shows only working +directory modifications (the changes that would typically get added to a +new patch by :command:`hg qnew -f`). The :guilabel:`Commit` button will +change into a :guilabel:`QNew` button as well, to make the mode switch +more obvious. + +When the :guilabel:`QNew` button is pressed, the selected change hunks +are written into a new patch (given the filename you specified), and the +dialog is refreshed. At refresh, the commit tool will obviously switch +to *qrefresh* mode since there will now be at least one applied patch. + +You may give the new patch a commit message at the initial *qnew* event, +or you can do it now by using the *qrefresh* feature. + +If you left change hunks out of the new patch, they will appear to be in +the new patch anyway because of the way *qrefresh* mode shows the sum of +both the top patch and the working directory changes. If you enter a +new patch name again, and switch the commit tool into *qnew* mode again, +you will see the changes that you left in the working directory. + + +Configurables +------------- + +:menuselection:`Commit --> Username` + Sets username associated with your commits (see :doc:`quick`) +: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:`TortoiseHg --> 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 + +From command line +----------------- + +The commit tool can be started from command line:: + + hgtk commit [OPTIONS] [FILE]... + + aliases: ci + + commit tool + + options: + + -u --user record user as committer + -d --date record datecode as commit date + + use "hgtk -v help commit" to show global options + +For a quick help on the format of date type:: + + hg help dates + + +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 only 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. + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​common.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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
@@ -0,0 +1,134 @@
+Common Features +=============== + +.. module:: common.dialog + :synopsis: Common features to all the dialog + +These features are common to 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 status. + +If the state to be restored does not fit within your current screen +dimensions, the application will revert to factory default dimensions. + +Dialogs which have fixed geometry or are transitory 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 +------------ + +.. figure:: figures/visual-diff.jpg + :alt: Visual Diff Window + +TortoiseHg 0.8 introduced a visual diff dialog that solves four +usability issues: + +1) Allows you to select a visual diff tool for each individual file +2) Allows you to use visual diff tools that fork background processes +3) Allows you to use visual diff tools that do not support directory diffs +4) Provides feedback when no files were modified + +Providing visual diffs requires TortoiseHg to generate temporary files +which contain older versions of data. Those temporary files are deleted +when the visual diff dialog is closed. + +If you would like to bypass this visual diff window and directly launch +your visual diff tool open the global settings dialog and set +:menuselection:`TortoiseHg --> Skip Diff Window` to true. + +.. note:: + The `Skip Diff Window` configurable does not change the behavior of + visual diffs launched by the shell context menu. The visual diff + window is always shown. + +.. warning:: + When you bypass the visual diff window, your visual diff tool must + be able to handle directory diffs and it must not fork a background + process. Caveat emptor. + +Configuring a visual diff application for use in TortoiseHg is a two +step process. First you must configure your application as an +`Extdiff <http://mercurial.selenic.com/wiki/ExtdiffExtension>`_ +command in your user :file:`Mercurial.ini`:: + + [extdiff] + myapp = C:\Path\to\tool.exe + +Then you can select `myapp` from the list of available extdiff +commands in :menuselection:`TortoiseHg --> Visual Diff Command`. +See the :doc:`faq` for some configuration examples. + +When more than one `Extdiff` command is configured, the visual diff +window will allow you to select the command to use as you open each +file. + + +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. Ensure that the treeview has focus (by clicking on a +row), and begin typing a search phrase. A small entry window will appear +containing 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 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 + +HG command dialog +----------------- + +Many TortoiseHg tools use the *hgcmd* dialog to execute Mercurial +commands that could potentially be interactive. + +.. figure:: figures/hgcmd.jpg + :alt: Mercurial command dialog + +.. note:: + Error messages are given a dark red color for contrast + +When the Mercurial command has completed, the dialog gives focus to its +:guilabel:`Close` button. So pressing :kbd:`Enter` is all that is +required to close the window. + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​conf.py 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
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
@@ -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
Change 1 of 1 Show Entire File doc/​source-ja/​daily.txt Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@@ -0,0 +1,22 @@
+*********************** +TortoiseHg in daily use +*********************** + +.. toctree:: + :maxdepth: 3 + + common + explorer + start + init + clone + commit + shelve + changelog + datamine + synchronize + serve + guess + ignore + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​datamine.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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
@@ -0,0 +1,135 @@
+Datamine +======== + +.. module:: datamine.dialog + :synopsis: Dialog used to search repository 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: + + :guilabel:`regexp` + Regular expression search criteria. + :guilabel:`includes` + 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. + :guilabel:`excludes` + 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 zoom the changelog (top pane) to the changeset that introduced +that line and change focus to the top pane. + +The color scheme in the annotation pane is two dimensional. Authors +determine hue, and age determines saturation. The older a change, the +lighter the color. + +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`. + +Following Renames +^^^^^^^^^^^^^^^^^ + +The annotation data will automatically follow lines of code back through +copies and renames to find the initial changeset that introduced the +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:`Changelog --> Long Summary` + Concatenates lines of commit message together to reach an 80 + character summary. +: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 + + aliases: annotate, blame + + repository search and annotate tool + + use "hgtk -v help datamine" to show global options + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​debugging.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
@@ -0,0 +1,91 @@
+Debugging +========= + +.. module:: debugging + :synopsis: Debug problems in shell extension or dialogs + +Dialogs +------- + +Stderr is being captured to a buffer that is being inspected at program +exit. If any serious errors (tracebacks, etc) are found in the stderr +buffer the entire contents are sent to the bug report tool so the user +can (should) report a bug. If you suspect there are errors that are not +being reported, you can set the environment variable **THGDEBUG** to any +value to disable the stderr buffering. + +If you have a bit of Python knowledge, you can also use:: + + hgtk --debugger <command> + +To disable the forking behavior of hgtk, you can either set an +environment variable **THG_HGTK_SPAWN**, or add the command line +parameter '--nofork'. + + +Windows +~~~~~~~ + +To debug the changelog viewer, for instance, enter these commands +into a :command:`cmd.exe` window, while inside the repository:: + + set THGDEBUG=1 + hgtk log + +Linux/MacOSX +~~~~~~~~~~~~ + +To debug the changelog viewer, for instance, enter these commands +into your shell window, while inside the repository:: + + export THGDEBUG=1 + hgtk log + + + +Shell Extension +--------------- + +The debugging mechanisms depend on your platform. + +Windows +~~~~~~~ + +See also http://msdn.microsoft.com/en-us/library/cc144064(VS.85).aspx +for some info bits about Running and Testing Shell Extensions on Windows + +The :command:`DbgView` tool from the SysInternals suite will capture +debug messages from the shell extension. + +The :command:`ThgTaskbar` application's options dialog has an error +logging tab. If you have this dialog open while you are browsing +folders, you will get info and error level messages from the icon +overlay refresh process. + +Nautilus +~~~~~~~~ + +Debugging is done via the environment variable DEBUG_THG + +* to test in a separate process:: + + DEBUG_THG=Ne TMPDIR=/tmp/anydir/ --no-desktop nautilus [path] + +* to test in the main instance:: + + nautilus -q + DEBUG_THG=NOe nautilus + +* permanent debugging, set DEBUG_THG in a file which is read on session + start (~/.profile, ~/.xprofile) + +Upper case characters in DEBUG_THG specify modules. Only *O* and *N* +for *OverlayCache* and *Nautilus*, respecively, are supported module +names. Lower case characters imply parts. Only *e* is supported, +implying *error* messages. + +To restart nautilus, chose either + +1) killall nautilus (the session restarts nautilus automatically, stdin and stdout go to ~/.xsession-errors) + +2) nautilus -q; nautilus (stdin and stdout are on the console)
Change 1 of 1 Show Entire File doc/​source-ja/​explorer.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
@@ -0,0 +1,104 @@
+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. + +TortoiseHg shares the overlay icons with TortoiseSVN (version 1.5.x or +later) and the other "Tortoise" projects via the use of TortoiseOverlays +(another project created by TortoiseSVN team). + +.. figure:: figures/overlayicons.png + :alt: Overlay icons + + Overlay icons in Icons view (XP) + +The context menu has an :guilabel:`Update Icons` 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. + +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. + +.. figure:: figures/taskbarui.jpg + :alt: Taskbar options dialog + + Taskbar Options Dialog + +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 + +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 and which varies according to the current folder and +file selection. Here is the context menu for a revisioned folder: + +.. figure:: figures/cmenu-nofiles.jpg + :alt: Context menu + + Context menu for a folder under Mercurial revision control + +And here is the context menu for selected files or folders: + +.. figure:: figures/cmenu-files.jpg + :alt: Context menu + + Context menu for file or folder selection + +TortoiseHg provides dialogs for the most regularly used Mercurial +commands. Less frequently used, and newly added, Mercurial commands +must need be accessed on the CLI (command line interface) through the +:file:`cmd.exe` windows. + +The context menus are 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. + +This is the file rename/move dialog: + +.. figure:: figures/rename.jpg + :alt: Rename file dialog + + +Nautilus +-------- + +TortoiseHg also provides shell integration with the GNOME desktop via a +nautilus-python plugin. If you have installed TortoiseHg from a +distribution package, the odds are that this extension is already +configured. If not, please consult our Wiki for instructions on how to +enable this feature. + +While the nautilus extension does not have it's own GUI for managing the +overlays and context menus, it does support command promotion into the +top menu. It requires you to edit your :file:`~/.hgrc` file and add +lines like these:: + + [tortoisehg] + promoteditems = commit, log, synch + +.. figure:: figures/nautilus.png + :alt: Nautilus screenshot + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​faq.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
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
@@ -0,0 +1,264 @@
+************************** +Frequently Asked Questions +************************** + + +*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://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 + +*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.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.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. + +*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://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. + + 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(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" + } + + 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
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
Added image
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
Change 1 of 1 Show Entire File doc/​source-ja/​guess.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
@@ -0,0 +1,57 @@
+Rename Guessing +=============== + +.. module:: guess.dialog + :synopsis: Dialog used to detect copies and/or renames + +.. figure:: figures/guess.jpg + :alt: Rename guessing dialog + +This dialog is used to find renames, moves, and/or copies that were done +without Mercurial's knowledge. The dialog can be launched from the +shell context menu, or from the status or commit tools via the context +menu of an unknown file. + +Follow these steps: + +1) select one or more of the :guilabel:`Unrevisioned Files` +2) slide the simularity bar to the percentage match you desire +3) press either :guilabel:`Find Renames` or :guilabel:`Find Copies`. +4) select candidate matches and accept good matches +5) repeat until all unrevisioned files are matched + +Find Renames +------------ + +This feature will search the repository for missing files (files which +were revisioned but are now gone). For each missing file, it compares +the last revisioned data against the unrevisioned file and if the +percentage of matching lines is above the +:guilabel:`Minimum Simularity Percentage`, it adds the pair to the +:guilabel:`Candidate Matches`. + +Find Copies +----------- + +This feature will check every revisioned file in the repository to see +if it exactly matches the unrevisioned file. + +Candidate Matches +----------------- + +When you select a match in this list, the differences between the two +files are shown in the bottom pane. Pressing :guilabel:`Accept Match` +will record the rename or copy event with Mercurial. + +From command line +----------------- + +The guess tool can be started from command line:: + + hgtk guess + + guess previous renames or copies + + use "hgtk -v help guess" to show global options + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​ignore.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
@@ -0,0 +1,29 @@
+Ignore Filter +============= + +.. module:: ignore.dialog + :synopsis: Dialog used to maintain the ignore filter + +The ignore dialog is used to maintain your Mercurial repository's ignore +filter, which can be found in an :file:`.hgignore` file in the +repository root. The dialog can be launched from the shell context +menu, or from the status or commit tools via the context menu of an +unknown file. + +.. figure:: figures/ignore.jpg + :alt: Ignore filter dialog + +From command line +----------------- + +The ignore tool can be started from command line:: + + hgtk hgignore [FILE] + + aliases: ignore, filter + + ignore filter editor + + use "hgtk -v help hgignore" to show global options + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​index.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
@@ -0,0 +1,31 @@
+.. 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. + +TortoiseHg マニュアルにようこそ! +================================ + +コンテンツ: + +.. toctree:: + :maxdepth: 3 + :numbered: + + preface + intro + quick + daily + settings + recovery + faq + debugging + +索引 +==== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​init.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
@@ -0,0 +1,47 @@
+Create a new repository +======================= + +.. module:: init.dialog + :synopsis: Dialog used to create a repository + +To create a new repository into an existing directory (project) you +have to run the init dialog. From the explorer context menu select +:menuselection:`TortoiseHg... --> Create Repository Here` over the directory, or, within +the folder, type :command:`hgtk init`. + +.. figure:: figures/init.png + :alt: Init dialog + +:guilabel:`Destination` + Is the directory where the repository will be created. It is + always filled with the current directory, so if you launch the + dialog from the right directory there is no reason to change it. +:guilabel:`Add special files (.hgignore, ...)` + If selected TortoiseHg creates an empty :file:`.hgignore` file + in the working directory. +:guilabel:`Make repo compatible with Mercurial 1.0` + If selected TortoiseHg creates an old type Mercurial repository. + Do not check unless you have a strong reason to do, and you know + what you are doing. + +Creating a new repository means create a subdirectory called :file:`.hg`. +In this subdirectory Mercurial keeps all versioning information. + +.. warning:: + Never touch the files in :file:`.hg` directory, otherwise a repository + corruption can happen. + +From command line +----------------- + +The init tool can be started from command line :: + + hgtk init + +The syntax is :: + + hgtk init [DEST] + +where [DEST] is the path to destination folder. + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​intro.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
@@ -0,0 +1,107 @@
+************ +Introduction +************ + +.. module:: introduction + :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://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 :file:`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. You must have Mercurial installed separately in order to + run TortoiseHg on Linux. TortoiseHg binary packages list Mercurial + as a dependency, so it is usually installed for you automatically. + +TortoiseHg is primarily written in Python and PyGtk (the Windows shell +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 (<0.8) version already installed, the installer + will ask that you to remove the previous version of TortoiseHg. The + uninstall can be done from the control panel or the start menu. If + no other applications are using TortoiseOverlays, it is recommended, + but not strictly required, to uninstall them when you upgrade an + earlier release. + +.. note:: + If you have 0.8 or later already installed, you must close all + instances of the ThgTaskBar application before installation can + proceed. + + +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 +``LANGUAGE`` to the desidered language, e.g. for italian +``set LANGUAGE=it``. + +.. note:: + After setting LANGUAGE, if the standard GUI elements like + :guilabel:`OK` and :guilabel:`Apply` still appear in English, it + means the TortoiseHg installer did not include a translation of GTK+ + for your locale. This means the translation of TortoiseHg for your + locale was incomplete at release time. + +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. For details, see +`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
Change 1 of 1 Show Entire File doc/​source-ja/​preface.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
@@ -0,0 +1,99 @@
+******* +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. + +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 +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. + +:doc:`quick` is a quick tutorial on how to start with TortoiseHg. + +:doc:`faq` has a list of common questions and their answers. + +:doc:`debugging` describes how to debug any problems that you find. + +The remaining chapters describe the components that make up TortoiseHg. + +TortoiseHg is free! +=================== + +TortoiseHg is released under +`GPLv2 <http://www.gnu.org/licenses/gpl-2.0.html>`_. You are free to +install it on as many computers as you like, and to redistribute it +according to the GPLv2 license. + +Community +========= + +Mailing Lists: + +* `Users <https://lists.sourceforge.net/lists/listinfo/tortoisehg-discuss>`_ - Announcements, user Q&A, and feature discussions. +* `Developers <https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop>`_ - Patches, bug reports, development discussions. +* `Issues <https://lists.sourceforge.net/lists/listinfo/tortoisehg-issues>`_ - Notifications from the issue tracker. + +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 +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. + +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 enter into command window. + +``myproxy:8000`` + Indicates a text to enter into a text input field in the GUI. + +.. note:: + This is a note. + +.. warning:: + An important note. Pay attention. + +.. vim: noet ts=4
Show Entire File doc/​source-ja/​quick.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 1 Show Entire File doc/​source-ja/​recovery.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
@@ -0,0 +1,39 @@
+******** +Recovery +******** + +.. module:: recovery.dialog + :synopsis: Dialog used to perform recovery operations + +.. figure:: figures/recover.png + :alt: Recovery dialog + +The toolbar buttons equate to a Mercurial command + +:guilabel:`clean` + :command:`hg update --clean` - performs a clean checkout of the + current (first) working directory parent revision. Undoes an + aborted or partially completed merge. This will destroy all + changes, please use carefully. You should shelve any changes you + wish to keep before using this command. + + +:guilabel:`rollback` + :command:`hg rollback` - undo operation for the most recent + repository transaction, which is usually a commit or a pull. There + is no way to know for certain what operation will be rolled back, so + only use this in situations where you know what the last transaction + was. + + +:guilabel:`recover` + :command:`hg recover` - recover from a badly aborted transaction. + This is rarely necessary, and Mercurial will inform you if it ever + needs to be performed. + + +:guilabel:`verify` + :command:`hg verify` - perform a consistency check of the contents of your + repository. Completely safe. + +.. vim: noet ts=4
Change 1 of 1 Show Entire File doc/​source-ja/​serve.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
@@ -0,0 +1,64 @@
+Serve +===== + +.. module:: serve.dialog + :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). + +Toolbar buttons: + + :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 the various +web configurations. + +Multiple Repositories +--------------------- + +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`. + + +From command line +----------------- + +The server tool can be started from command line :: + + hgtk serve [OPTION]... + + web server + + options: + + --webdir-conf name of the webdir config file + + use "hgtk -v help serve" to show global options + +.. vim: noet ts=4
Show Entire File doc/​source-ja/​settings.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source-ja/​shelve.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 1 Show Entire File doc/​source-ja/​start.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
@@ -0,0 +1,40 @@
+Start on a project +================== + +There are many ways to start with Mercurial/TortoiseHg on a project. + +1. The project already exists and is unrevisioned. You have to *create* + a new repository. +2. You want to hack on a project already revisioned with Mercurial. You + have to *clone* a repository. +3. The project already exists and is revisioned under a different + SCM. You have to *convert* the repository. + +.. note:: + Other cases, like *an existing project under a different SCM, you + want to keep this SCM but use Mercurial as client*, are out of the + scope of this manual, and TortoiseHg can not help you in any way. + +In the first two cases TortoiseHg can help you with a specific tool, see +the next two sections. + +Convert a project +----------------- + +TortoiseHg has not a specific tool to do the conversion, but after the +conversion done with Mercurial you can use TortoiseHg as usually in +this converted project. + +How to do the conversion is not in the scope of this manual, please +refer to http://mercurial.selenic.com/wiki/RepositoryConversion for +more details. + +Normally a conversion is done by enabling the *convert* extension and, +from the parent directory of the checked-out project type:: + + hg convert myproject + +After the conversion you have a sibling directory of :file:`myproject` +called :file:`myproject-hg`. Start to play on it. + +.. vim: noet ts=4
Show Entire File doc/​source-ja/​synchronize.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
 
5
6
7
8
 
9
10
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
 
@@ -5,7 +5,48 @@
  :synopsis: Dialog used to clone a repository    To clone a repository you have to run the clone dialog. -From the explorer context menu select :guilabel:`Clone a repository` +From the explorer context menu select :menuselection:`TortoiseHg... --> Clone a repository`  or type :command:`hgtk clone`.   -.. TODO \ No newline at end of file
+.. figure:: figures/clone.png + :alt: Clone dialog + +:guilabel:`Source Path` + It is the path (or URL) of the repository that will be cloned. Use the :guilabel:`Browse...` to + choose a local folder. +:guilabel:`Destination Path` + It is the path of destination directory, a folder with the same name of source repository will + be created within this directory. +:guilabel:`Clone To Revision` + You can limit the clone up to this revision. Even the tags created after this revision will not be + imported. +:guilabel:`do not update the new working directory` + If checked, after the clone the working directory will be empty. It is useful when you have to clone + a repository with the purpose of central repository, or backup, where you have only, in the future, + to *push* and *pull*. +:guilabel:`use pull protocol to copy metadata` + When the source and destination are on the same filesystem, Mercurial tries to use hardlinks. Some + filesystems, such as AFS implement hardlink incorrectly, but do not report errors. Use this option + to avoid hardlinks. +:guilabel:`use uncompressed transfer` + To use uncompressed transfer (fast over LAN). +:guilabel:`use proxy server` + To use the proxy server configured in :menuselection:`TortoiseHg... --> Global Settings --> Proxy`. + This is enabled only if a proxy is configured. +:guilabel:`Remote Cmd` + Specify a Mercurial command to run on the remote side. + +From command line +----------------- + +The clone tool can be started from command line :: + + hgtk clone + +The syntax is :: + + hgtk clone [SOURCE] [DEST] + +where [SOURCE] and [DEST] are, the paths of source repository and destination folder. + +.. vim: noet ts=4 \ No newline at end of file
 
51
52
53
 
 
54
55
56
 
124
125
126
 
 
127
128
129
 
51
52
53
54
55
56
57
58
 
126
127
128
129
130
131
132
133
@@ -51,6 +51,8 @@
 .. figure:: figures/visual-diff.jpg   :alt: Visual Diff Window   + Visual Diff Window +  TortoiseHg 0.8 introduced a visual diff dialog that solves four  usability issues:   @@ -124,6 +126,8 @@
 .. figure:: figures/hgcmd.jpg   :alt: Mercurial command dialog   + Interactive Mercurial Command Dialog +  .. note::   Error messages are given a dark red color for contrast  
 
80
81
82
83
 
84
85
86
 
80
81
82
 
83
84
85
86
@@ -80,7 +80,7 @@
  start (~/.profile, ~/.xprofile)    Upper case characters in DEBUG_THG specify modules. Only *O* and *N* -for *OverlayCache* and *Nautilus*, respecively, are supported module +for *OverlayCache* and *Nautilus*, respectively, are supported module  names. Lower case characters imply parts. Only *e* is supported,  implying *error* messages.  
Show Entire File doc/​source/​explorer.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
doc/​source/​figures/​clone.png Side by side
size 536x308
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​init.png Side by side
size 366x168
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​share.png Side by side
size 536x308
This image was not loaded automatically because this changeset is very large. Click to load this image...
Show Entire File doc/​source/​init.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​intro.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​preface.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​quick.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File hggtk/​hgtk.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File hggtk/​status.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File thgtaskbar.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 1 Show Entire File thgutil/​i18n.py Stacked
 
22
23
24
25
 
26
27
 
22
23
24
 
25
26
27
@@ -22,6 +22,6 @@
  try:   u = _(message)   return hglib.fromutf(u) - except LookupError: + except (LookupError, UnicodeEncodeError):   return message