Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.0, 1.0.1, and 1.0.2

Merge with stable

Changeset bb57b13e5efc

Parents 071ea4834dc4

Parents d3d32fce6f9c

by Steve Borho

Changes to 71 files · Browse files at bb57b13e5efc Showing diff from parent 071ea4834dc4 d3d32fce6f9c Diff from another changeset...

 
20
21
22
 
 
 
23
24
25
 
20
21
22
23
24
25
26
27
28
@@ -20,6 +20,9 @@
 :guilabel:`クローン先`   クローン先のディレクトリを指定してください。このディレクトリにクローン元と同じ名前の   ディレクトリが作成されます。 + +:guilabel:`詳細設定` には以下の設定項目が含まれています: +  :guilabel:`リビジョン指定`   ここで指定したリビジョンまでクローンするよう制限できます。   指定したリビジョン以降のタグであればインポートされます。
 
11
12
13
14
15
16
17
18
 
 
 
 
 
 
 
19
20
21
 
25
26
27
28
 
29
30
31
32
 
 
 
 
 
 
 
 
 
 
 
 
33
34
35
36
37
38
 
 
39
40
41
 
45
46
47
 
 
 
 
 
48
49
50
 
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
 
123
124
125
126
 
 
127
128
129
 
153
154
155
156
157
 
 
158
159
160
161
162
163
164
 
165
166
167
168
 
 
 
 
 
 
169
170
171
 
174
175
176
177
178
179
180
181
182
183
184
 
 
185
186
187
 
195
196
197
198
199
200
 
 
 
 
201
202
203
204
205
206
207
208
 
 
 
 
209
210
211
 
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
 
315
316
317
318
319
320
321
322
323
 
 
 
 
 
 
 
 
 
 
 
 
 
324
325
326
327
328
329
 
330
331
332
 
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
 
11
12
13
 
 
 
 
 
14
15
16
17
18
19
20
21
22
23
 
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
 
58
59
60
61
62
63
64
65
66
67
68
 
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
 
196
197
198
 
199
200
201
202
203
 
227
228
229
 
 
230
231
232
233
234
235
236
237
 
238
239
 
 
 
240
241
242
243
244
245
246
247
248
 
251
252
253
 
 
 
 
 
 
 
 
254
255
256
257
258
 
266
267
268
 
 
 
269
270
271
272
273
274
275
276
277
278
 
 
279
280
281
282
283
284
285
 
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
 
385
386
387
 
 
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
 
410
411
412
413
 
434
435
436
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437
@@ -11,11 +11,13 @@
  `issue #82 <http://bitbucket.org/tortoisehg/stable/issue/82/>`_   をご覧ください。   -コミットツールは TortoiseHg の中でも重なツール言えます。実際、このツールは -デフォルトで右クリックメニューのトップレベルから直接起動できる唯一のツールです。 -これは最も使用頻度の高ツールであというのが主な理由です。変更点をコミットする以外にも、 -作業ディレクトリの状態確認したり、その他にも様々な作業 (新規ファイルの追加、 -名前変更の記録、リポジトリの無視フィルタの編集、等々) コミットツール上で行えます。 +コミットツールは TortoiseHg に2つある主アプリケーションのうちの1つです。 +リポジトリエクスプローラ (別名: チェンジログビューア) 共にこれら2つのツールは +TortoiseHg が実装しているほぼ全ての機能にアクセスできます。 + +コミットツールは変更点をコミットするだけではなく、作業ディレクトリの状態確認や、 +その他にも様々な作業 (新規ファイルの追加、名前変更の記録、 +リポジトリの無視フィルタの編集、など) コミットツール上で行えます。    .. figure:: figures/commit.png   :alt: コミットダイアログ @@ -25,17 +27,28 @@
 機能  ----   -ツールバーボタを左から順に見ていきます +コミットツールの一番上にはバージョ 0.9 から導入されたメニューバーがあります   - :guilabel:`再読み込み` - 作業ディレクトリの状態を再読み込みします。 - 再読み込み後もチェッックスの選択状態は保たれます。 + :guilabel:`ツール` + TortoiseHg の各種ツールを別プロセスで起動します。 + :guilabel:`表示` + オプション機能の表示切り替えと、作業ディレクトリの表示内容を再読み込みします。 + :guilabel:`操作` + ツールバーのボタンと同じ操作を実行できます。 + :guilabel:`ヘルプ` + システム既定のウブブラウザでコミトツールに関するヘルプを開きます。 + また TortoiseHg のバージョン情報を表示します。 + +その下のツールバーにあるタンを左から順に見ていきます: +   :guilabel:`コミット`   チェックされたファイルの選択されたハンクをコミットします。   :guilabel:`取り消し`   直前のコミットを取り消します。入力したコミットメッセージは   :guilabel:`最近コミットしたメッセージ` の一覧に追加されるため、   コミットミスを修正した後に同じメッセージでコミットできます。 + :guilabel:`差分` + チェックされているファイルを GUI 差分ツールで表示します。   :guilabel:`元に戻す`   チェックされているファイルを変更を加える前の状態に戻します。   その変更がマージの場合はどちらの親リビジョンに戻すか選択できます。 @@ -45,6 +58,11 @@
  チェックされているファイルを指定されたディレクトリに移動します。   :guilabel:`削除`   チェックされているファイルを削除します。 + :guilabel:`破棄` + チェックされている管理済みファイルを破棄します。 + :guilabel:`再読み込み` + 作業ディレクトリの状態を再読み込みします。 + 再読み込み後もチェックボックスの選択状態は保たれます。    ツールバーの下にはいくつかの便利なウィジェットがあります:   @@ -74,39 +92,94 @@
  resolve コマンドで使用されている ' RU' のうちどれか1つが表示されます。   4) リポジトリルートを基準としたファイルパスが表示されます。   +.. note:: + コミットツールがファイルパターンまたは特定のファイルを選択した状態で起動された場合、 + ファイル一覧の下にそれらのフィルタを削除して作業ディレクトリにおける変更全てを + 表示するためのボタンが表示されます。 +  ファイル一覧の下に並んだチェックボックスは  {M:変更, A:追加, R:削除, !:削除, ?:不明, C:クリーン, I:無視}  のファイル状態ごとにファイル一覧に表示するかどうかを設定できます。  このチェックボックスはコミットツールからファイルまたはディレクトリを指定された場合には  無効になります。   -*R:削除* は管理済みファイルが削除されたとマークされている状態意味しています。 +*R:削除* は管理済みファイルが Mercurial の管理から外されたとをしています。  一方で *!:削除* は管理済みファイルが見当たらず、Mercurial がそのファイルを  追跡できなくなったことを意味しています。例えば管理済みファイルの名前をエクスプローラで  変更したとき、コミットツールのファイル一覧には元のファイル名が *!:削除* として表示され、  新しいファイル名が *?:不明* として表示されます。新しいファイル名の右クリックメニューから  名前変更推定ダイアログを起動すればファイル内容の比較によって名前変更を検出し、 -古いファイルを *R:削除* とマークし、新しいファイルを *A:追加* とマークすることが -できます。 +古いファイルを *R:削除* とマークし、新しいファイルを *A:追加* とマークすることができます。    *?:不明* は Mercurial によって管理されておらず、かつ、設定されている -無視ファイルフィルタに該当しないファイルにマークされます。リビジョン管理に +無視ファイルフィルタにマッチしないファイルに表示されます。リビジョン管理に  追加する必要のあるファイルなどはデフォルトで不明ファイルとして表示されます。 -無視ファイルフィルタを最新に保つことは良いことです。不明ファイルの +無視ファイルフィルタを最新に保つことは良い習慣です。不明ファイルの  右クリックメニューには無視ファイルフィルタを編集するツールを開くコマンドがあります。    *C:クリーン* は変更が加えられていない管理済みのファイルです。 -一方で *I:無視* は設定されている無視ファイルフィルタに該当し、管理されていない -ファイルです。どちらのファイルもエクスプローラでの選択に含めるか、コマンドラインから -そのファイルを指定して起動するかしない限りデフォルトでは表示されません。 +一方で *I:無視* は設定されている無視ファイルフィルタに該当する管理外のファイルです。 +どちらのファイルもエクスプローラでの選択に含めるか、 +コマンドラインからそのファイルを指定して起動しない限りデフォルトでは表示されません。 + +.. figure:: figures/parentbar.png + :alt: 親リビジョンバー + + コミットツールの親リビジョンバー + +ファイル一覧と差分表示パネルの下には *親リビジョンバー* があります。 +ここには現在の作業ディレクトリの親にあたるチェンジセットが表示され、 +コミットによって新しくヘッドが作成されるかどうか見ることができます。 +このバーは :guilabel:`表示` メニューから非表示にできます。 + +ファイル一覧の右側は差分表示パネルになります。バージョン 0.9 から差分表示パネルが +タブ表示になりました。 + + :guilabel:`テキスト差分` + 選択しているファイルの差分をテキストで表示します。 + :guilabel:`ハンク選択` + バージョン 0.7 から 0.8 まではこのタブは単純に内容を表示するだけでしたが、 + 0.8 からはハンク選択機能が実装され、変更点の一部を選択してコミットできる + ようになりました。このタブには選択されているファイルの差分ハンクが表示されますが、 + バイナリファイルは表示されません。内容の確認は :guilabel:`テキスト差分` + タブで行ってください。 + :guilabel:`コミットプレビュー` + このタブには全ての選択されたハンクが表示されます。実質的にこのプレビューには + コミットボタンを押したときに何がコミットされるかが表示されます。 + :guilabel:`パッチ内容` + コミットツールがパッチ更新モードのときにのみ表示されます。 + ここには現在のパッチ内容が表示されます。 + +.. figure:: figures/advancedbar.png + :alt: 詳細設定バー + + コミットツールの詳細設定バー + +:guilabel:`表示` メニュー で :guilabel:`詳細設定` を有効にした場合、 +ツールバーとコミットログ履歴の間に詳細設定バーが挿入されます。このバーには: + + :guilabel:`コミッタ` + コミットに使用するユーザ名です。この値は通常 Mercurial.ini ファイルから + 読み込まれますが、コマンドラインやパッチファイルから読み込んで指定すること + もできます。直接入力することで異なるユーザを指定することも可能です。 + :guilabel:`自動的に含む` + ファイルにチェックを入れたかどうかに関わらず、常にコミットに含めたい + ファイルをカンマ区切りで指定するためのテキストボックスです。 + この機能はリポジトリの pre-commit フックによってコミット時に自動更新される + ファイル (例えば changelog ファイル) などを常にコミットに含めたい、 + というときに便利です。 + :guilabel:`コミット後にプッシュ` + コミットが正常に完了した後、デフォルトの URL にプッシュするかどうかを + 設定するチェックボックスです。      変更点の選択  ------------    さて、「チェックされたファイルの選択されたハンクをコミットする」と言ったとき、 -れは何を意味しているのでしょうか? これは単純に TortoiseHg 付属のコミット -ツールの差分ビューアが変更点の選択に対応しているのです。 +れは何を意味しているのでしょうか? TortoiseHg のコミットツールには +変更点の一部のみをコミットする機能が標準で備わっているため、 +単純にそれを使うという意味になります。  つまり、管理下に置かれたファイルに対する全ての変更箇所は、どの部分をコミットに含めて、  どの部分をコミットせずに (作業ディレクトリに) 残すのか個別に選択することができます。  darcs バージョン管理システム、または Mercurial の record 拡張機能のユーザであれば @@ -123,7 +196,8 @@
 どうやって使うのか?  ^^^^^^^^^^^^^^^^^^^^   -差分表示パネルのチェンジハンクをダブルクリックすることで選択状態を切り換えます。 +差分表示パネルの :guilabel:`ハンク選択` タブでチェンジハンクをダブルクリックすることで +そのハンクの選択状態を切り換えることができます。  *厳密には選択状態はアクティベート操作によって切り替わるため、ダブルクリックでは  なくスペースキーを押すことでも可能です。* ハンクが選択解除されると差分パネルの  色分け表示が無効になり、背景色がグレーになります。それと同時にファイルの差分ヘッダ @@ -153,19 +227,22 @@
 かもしれません (Windows ではその可能性がゼロであると言い切れないため)。  何らかのプログラム (アンチウイルスソフト、コンパイラなど) が処理の過程で生成された  一時ファイルをロックしてしまった場合、書き戻しに失敗したというエラーが発生する -かもしれません。しかしこれらのエラーは修復できます。全ての :file:`.rej` ファイルを -削除してからもう一度コミット試みてください。 +かもしれません。しかしこれらのエラーは修復できます。リポジトリにある :file:`.rej` +ファイルを削除してからもう一度コミット試みてください。      キーボードショートカット  ------------------------    :kbd:`Ctrl-Enter` - コミットします + コミットを実行します  :kbd:`Ctrl-C` - 差分表示パネルでは現在ハイライト (選択ではない) されているハンククリップボードに - コピーます。作業ディレクトリの変更から任意の変更点をテキストとしてどこかにペースト - するのに使えます。 + 差分表示パネルでこのショートカットを押すと、ハイライト (選択ではない) されている + ハンクの内容がクリップボードにコピーされます。作業ディレクトリの変更から任意の + 変更点をテキストとしてどこかにペーストするのに使えます。 +:kbd:`Alt-Q` + カーソルのある段落(空行で区切られた行)を空白で連結して1行にします。このショートカット + を使用するにはフォーマットポリシーの設定が必要です。    クリップボードにコピーされるハンクは気が利いていて、差分のヘッダ情報が付加されます。  つまり、クリップボードの内容はいつでも正しいパッチとして使えるというわけです。 @@ -174,14 +251,8 @@
 ファイルの右クリックメニュー  ----------------------------   -ファイル一覧のファイルの上で右クリックする、選択されたファイルに対する -コマンドを含むメニューが表示されます。複数のファイルを選択している状態で -右クリックメニューを開いた場合、コマンドは最初のファイルにのみ適用されます。 - -GUI エディタ -(:menuselection:`グローバル設定 --> TortoiseHg --> GUI エディタ`) -が設定されている場合、メニューにはそのエディタで選択されているファイルを -開くコマンドも含まれています。 +ファイル一覧のファイルの上で右クリックすると、選択されたファイルに対する +コマンドを含むメニューが表示されます。    不明ファイル **?** の右クリックメニューには名前変更を検出するコマンド  (不明ファイルが管理下にあったファイルのコピーまたは名前変更されたものだと @@ -195,17 +266,20 @@
   マージ状態のリポジトリを開いたとき (正確には現在の作業ディレクトリが2つの  親リビジョンを持っているとき) コミットツールは特別なモードに切り替わります。 -ファイル一覧にはチェックボックスが表示されず、差分表示パネルではハンク -選択することができません。マージ後に作業ディレクトリ全体をコミットしなければ -ならないため、基本的にコミットマニフェストは不変です。 +ファイル一覧にはチェックボックスが表示されず、差分表示パネル +:guilabel:`ハンク選択` タブは非表示になります。 +マージ後に作業ディレクトリ全体をコミットしなければならないため、 +基本的にコミットマニフェストは不変です。    このモードではマージ状態を示す *ms* 列が特に役に立ちます。この *ms* 列で  *R* というマークが付いたファイルは Mercurial またはユーザによって2つの  親リビジョンから正しくマージ (衝突の解決) されたファイルです。 *U* マーク  付いたファイルは未解決のファイルです。そのファイルのマージ作業を再開するには  右クリックメニューの *衝突の解決* メニューを選択するか、 *編集* メニューで -ファイルを開いて手動で衝突を解決します。衝突を解決したら *解決済みとしてマーク* -メニューを選択してファイルのマージ状態を *R* に変更します。 +ファイルを開いて手動で衝突を解決します。 *衝突の解決* メニューからマージ作業を +開始すると、その都度マージツールを変更できるため、ファイルごとに適切な +マージツールを使用することができます。衝突を解決したら *解決済みとしてマーク* +メニューを選択してファイルのマージ状態を手動で *R* に変更します。    Mercurial は1つでもマージ状態が *U* となっているファイルがあるとコミットを  中止します。 @@ -258,41 +332,37 @@
 ---------    多くの Mercurial 上級者はパッチの管理に MQ 拡張機能を使っていることでしょう。 -TortoiseHg は MQ のための機能をあまり多くは提供していませんが、コミットツール -パッチが適用されているかどうかを検出します。パッチが適用されているとき -通常のコミット操作ができないため、コミットツールは *パッチ更新* モードに -切り替わります。ダイアログのタイトルは "パッチ更新 *パッチ名*" となり、 -コミットメッセージパネルにはそのパッチのコメントが表示されます。 +コミットツールはパッチが適用されているとき *パッチ更新* モードに切り替わります。 +ダイアログのタイトルは "パッチ更新 *パッチ名*" となり、コミットメッセージパネル +にはそのパッチのコメントが表示されます。   -コミトツールは現在のパッチ内容と作業ディレクトリにおける変更点 (まだ -:command:`qrefresh` していない変更も含む) 体をまとめて表示ます。 -これは :command:`qdiff` コマンドを実行したときと同じ内容になります。 -実際には、コマンドラインから実行する :command:`hg diff` のように -作業ディレクトリにおける変更点のみを表示する方法はありません -その理由はこのように全てまとめた形で表示することでハンク選択機能を使って -現在のパッチから変更点を取り除く機能を提供できるからです。 +差分表示パネルの :guilabel:`パチ内容` タブには現在のパッチ内容全て表示されます。 +:guilabel:`テキスト差分` と :guilabel:`ハンク選択` タブにはパッチ内容に加えて +作業ディレクトリでの変更点も合わせて表示されます。ハンク選択機能を使えば現在の +パッチから変更点の一部別のパッチに移動 (またその逆も) することができす。   -:guilabel:`コミット` ボタ (パッチ更新モーではラベルが :guilabel:`QRefresh` -に変化ます) は現在パッチ内容を選択されている変更点にコミットメッセージと共に -更新します。更新後も除外した変更点は作業ディレクトリにるので、ファイル覧や -差分表示パネルの内容は何も変化しないため、最初は少し戸惑うかもしれせん+これは実質的に :command:`qdiff` コマンドを実行たときの内容が表示されます。 +コマンドラインから実行する :command:`hg diff` のように作業ディレクトリに +おける変更点のみを表示する方法はありませんが、新しいパッチ名を入力する +テキストボックスに何か1文字でも入力すれば *パッチ作成* モード (後述) に +切り替わるので、作業ディレクトリにおける変更のみを見ることは応でき  -めると、 TortoiseHg MQ を使うにまだまだコマンドインからの操作-必要なりますが、現在のパッチを更新すために :command:`hgtk ci` が使える -ことと、変更点の選択よるパチ内容の分割いう素晴い利点があります。 +:guilabel:`コミット` ボタンを押すことで (パッチ更新モードではラベル+:guilabel:`パッチ更新` 変化します) は現在のパッチ内容選択されている変更点に +コミトメッセージ共に更新 (qrefresh) します。更新後も除外した変更点は +作業ディレクトリに残り、ファイル一覧や差分表示パネルに表示される内容は何も +変化しないため、最初は少し戸惑うかもしれません。      QNew モード  -----------   -新しくバージョン 0.8 で導入された機能で、コミットツールから MQ のパッチを -作成できます。 MQ 拡張機能が有効になっている場合、ブランチボタンとコミット -メッセージ履歴のドロップダウンリストの間にテキストボックスが表示されます。 -このテキストボックスにパッチ名を入力し始めるとコミットツールは *コミット* -または *パッチ更新* モードから *パッチ作成* モードに切り替わり、 -差分表示パネルには現在の作業ディレクトリにおける変更点が表示されます。 -正常にモードが切り替わると :guilabel:`コミット` ボタンが :guilabel:`QNew` -ボタンに変化するので一目瞭然です。 +コミットツールから MQ のパッチを作成できます。 MQ 拡張機能が有効になっている場合、 +ブランチボタンとコミットメッセージ履歴のドロップダウンリストの間にテキストボックスが +表示されます。このテキストボックスにパッチ名を入力し始めるとコミットツールは *コミット* +または *パッチ更新* モードから *パッチ作成* モードに切り替わり、差分表示パネルには +現在の作業ディレクトリにおける変更点が表示されます。正常にモードが切り替わると +:guilabel:`コミット` ボタンが :guilabel:`QNew` ボタンに変化するので一目瞭然です。    :guilabel:`QNew` ボタンが押されると選択されている変更点のハンクが入力された  名前の新しいパッチに書き込まれ、ダイアログが再読み込みされます。これにより、 @@ -315,18 +385,29 @@
   :menuselection:`コミット --> ユーザ名`   コミットに関連付けるユーザ名を設定します (:doc:`quick`) -:menuselection:`コミット --> 外部ツール` - コミットツールとして Qct を使います [廃止予定]  :menuselection:`コミット --> 要約文字数`   要約行の文字数を制限するポリシーを設定します  :menuselection:`コミット --> メッセージ文字数`   コミットメッセージ各行の文字数を制限するポリシーを設定します + +これに加えて上級者向けの3つのオプションがあります。 + +:menuselection:`コミット --> コミット後にプッシュ`: + True にすることで *コミット後にプッシュ* チェックボックス の初期値として + 使用されます。 +:menuselection:`コミット --> 自動コミットファイル`: + コミットに自動的に含めたいファイルをカンマ区切りで指定します。 + 通常はグローバル設定ではなくリポジトリ設定で使用します。 +:menuselection:`コミット --> 自動除外ファイル`: + ステータス、コミット、シェルフツールにおいて自動的にチェックを外したい + ファイルをカンマ区切りで指定します。 +  :menuselection:`TortoiseHg --> 差分を画面下部に表示`   差分表示パネルをファイル一覧の右側から下に切り替えます  :menuselection:`TortoiseHg --> 最大差分サイズ`   表示する差分の上限サイズを設定します   -外部ツールの設定はバージョン 0.9 で廃止されま+外部ツールの設定はバージョン 0.9 で廃止されました     コマンドラインからの実行 @@ -353,29 +434,4 @@
   から見ることができます。   - -0.7 からの変更点 ----------------- - -* :guilabel:`差分表示` ボタンは削除されました。差分パネルは常に表示されます。 -* コミットツールは起動時に差分全体を表示しません。ファイル一覧で選択されている - 1つ目のファイルの差分のみ表示されます。 -* 名前付きブランチを閉じる機能が追加されました。 -* コミットツールがマージダイアログから起動可能になりました。 -* コミットメッセージパネルの右クリックメニューに、チェックの入ったファイル一覧を - 挿入するコマンドと、メッセージのフォーマットポリシーを適用または設定するコマンド - が追加されました。 -* これまで :guilabel:`Ctrl-O` がコミット実行のキーボードショートカットでしたが、 - :guilabel:`Ctrl-Enter` に変更になりました。このショートカットは他の多くの - TortoiseHg のダイアログでも有効な共通のものです。 -* マージリビジョンにおけるファイルの右クリックメニューが改善されました。 -* コミットツールやチェンジログビューアでの差分表示のサイズに上限が設けられました。 - この上限を超えるファイルは差分表示の代わりに理由が表示されます。この上限 - (デフォルト:1MB) は :menuselection:`TortoiseHg --> 最大差分サイズ` - から (必要であればリポジトリごとに) 設定可能です。 -* コマンドラインからコミッタと日付を指定できるようになりました。詳しくは - :command:`hgtk commit -h` をご覧ください。 -* :file:`qct.py` 拡張機能は同梱されなくなりました。Qct を使用したい場合は - 別途ダウンロードする必要があります。 -  .. vim: noet ts=4
 
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
41
42
43
44
 
45
46
47
 
108
109
110
111
 
112
113
114
 
8
9
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
12
13
 
27
28
29
 
30
31
32
33
 
94
95
96
 
97
98
99
100
@@ -8,20 +8,6 @@
 ここにまとめておきます。     -ウィンドウ位置・サイズなどの復元 --------------------------------- - -コミット、チェンジログ、リポジトリ検索といった TortoiseHg の主要ダイアログは最後に -起動したときの位置やサイズが復元されます。 -これにはウィンドウが最大化されていたかどうかも含まれます。 - -復元された位置やサイズが現在のディスプレイのサイズに合わない場合はデフォルトの -ダイアログ状態に戻されます。 - -サイズ固定のダイアログや一時的に表示されるダイアログは好みの位置に -置くことができます。 - -  キーボードショートカット  ------------------------   @@ -41,7 +27,7 @@
 :kbd:`Ctrl-Enter`   アクティベーションします   -:kbd:`F5` +:kbd:`F5`, :kbd:`Ctrl-R`   最新の状態に更新します    `Mac OS X <http://bitbucket.org/tortoisehg/stable/wiki/MacOSX>`_ では @@ -108,7 +94,7 @@
 チェンジログビューアのグラフ表示パネル、リポジトリ検索ツールのコメントパネルなど  多くの TortoiseHg ダイアログでツリービューを利用しています。   -多くの TortoiseHg 0.8 以降のツリービューはインクリメンタル検索が可能です。 +TortoiseHg のツリービューの大部分はインクリメンタル検索が可能です。  どれか行を1つ選択するなどして、ツリービューがフォーカスされている状態で  検索キーワードの入力を始めてください。入力した検索キーワードを含む小さな  テキスボックスが表示されて、ツリービューは最初にマッチした行にジャンプします。
 
61
62
63
64
 
 
65
66
67
 
93
94
95
96
 
 
 
97
98
99
100
 
 
101
102
103
 
61
62
63
 
64
65
66
67
68
 
94
95
96
 
97
98
99
100
101
102
 
103
104
105
106
107
@@ -61,7 +61,8 @@
  このリビジョンのファイルをコメントタブで開きます   :guilabel:`履歴の表示`   チェンジログビューアでこのファイルのリビジョン履歴を表示します - + :guilabel:`ファイルの表示` + そのファイルをあらかじめ設定された GUI エディタで開きます    コメントタブ  ------------ @@ -93,11 +94,14 @@
 ^^^^^^^^^^^^^^    コメント情報のデータはコードの各行が作成された初期チェンジセットを探し出すために -自動的にコピーや名前変更の履歴をさかのぼって収集されます。一方で、リビジョングラフは +自動的にコピーや名前変更の履歴をさかのぼって収集されます。 + +一方で、リビジョングラフは  自動的に名前変更やコピーをたどりません。その代わり、リビジョン一覧の名前変更またはコピーを  含むチェンジセット行をクリックすると、その履歴をたどったグラフを表示するためのボタンが  表示されます。そのボタンを押すと同じチェンジセットの古いファイル名でコメントタブが開きます。 - +リビジョングラフも同様に名前変更とコピーをたどって表示されるため、異なるファイル名を含む +チェンジセット同士が接続される場合があります。その場合はグラフの色が変化します。    オプション設定  ^^^^^^^^^^^^^^
 
75
76
77
78
79
80
81
82
83
84
85
86
87
 
75
76
77
 
 
 
 
 
 
 
78
79
80
@@ -75,13 +75,6 @@
 選択してください。表示された設定ダイアログで各コマンドを個別にトップレベルの  メニューとして表示できます。   -これは名前変更・移動ダイアログです: - -.. figure:: figures/rename.png - :alt: 名前変更ダイアログ - - 名前変更 (または移動) ダイアログ -    Nautilus  --------
 
11
12
13
14
15
16
17
18
19
 
20
21
22
23
24
 
 
 
 
25
26
 
27
28
29
30
 
 
 
31
32
33
 
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
 
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
 
155
156
157
158
 
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
 
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
 
200
201
202
 
207
208
209
210
 
211
212
213
 
226
227
228
 
 
229
230
231
 
249
250
251
252
253
 
 
254
255
256
 
11
12
13
 
 
14
15
16
 
17
18
19
20
 
 
21
22
23
24
25
 
26
27
 
 
 
28
29
30
31
32
33
 
43
44
45
 
46
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
49
50
51
 
102
103
104
 
 
 
 
 
 
 
 
105
106
 
 
 
 
 
 
 
 
 
 
 
107
108
109
110
111
112
113
114
115
116
 
122
123
124
 
125
126
127
 
128
129
130
131
 
132
133
134
135
 
 
 
 
136
137
138
 
146
147
148
 
 
 
 
149
150
151
152
153
 
 
 
154
155
156
157
 
162
163
164
 
165
166
167
168
 
181
182
183
184
185
186
187
188
 
206
207
208
 
 
209
210
211
212
213
@@ -11,23 +11,23 @@
   *Windows 向けの TortoiseHg インストーラには何が含まれていますか?*   - Mercurial、kdiff3、TortoisePlink、そして拡張機能として forest も同梱しています。 -   `Mercurial <http://mercurial.selenic.com/wiki/>`_,   `kdiff3 <http://kdiff3.sourceforge.net/>`_,   `TortoisePlink <http://www.chiark.greenend.org.uk/%7Esgtatham/putty/>`_, - そして拡張機能の hgfold 同梱しています。 + に加えて拡張機能の hgfold と hgcr-gui を同梱しています。    *エクスプローラの右クリックメニューは英語のままなの?*   - 公式 Wiki `ダウンロード <http://bitbucket.org/kuy/thg-ja/wiki/install>`_ - ページから翻訳ファイルを入手できます。 + 右クリックメニューの翻訳ファイルは TortoiseHg のインストールディレクトリ + :file:`C:\\Program Files\\TortoiseHg\\cmenu_i18n` にあります。 + 使用したい言語の Windows レジストリファイルをダブルクリックして、 + 表示される確認ダイアログの指示に従ってインストールしてください。   -*バージョン 0.8 でマージや任意のリビジョンへの更新はどうやるの?* +*マージや任意のリビジョンへの更新はどうやるの?*   - バージョン 0.8 ではチェンジログツールからマージや更新うようになりした- チェンジログツールはエクスプローラの右クリックメニューの :guilabel:`ログの表示` - から起動できます+ チェンジログツールからマージや特定リビジョンへの更新+ エクスプローラの右クリックメニューの :guilabel:`ログの表示` + から起動してください   *'failed to import extension hgext.hgconfig...' という警告メッセージはどうすれば消えるの?*   @@ -43,30 +43,9 @@
  `SSH 接続 <http://bitbucket.org/kuy/thg-ja/wiki/ssh>`_ ページも参考に   してみてください。   -*バージョン 0.7 以降の TortoiseHg で Qct を使うことはできますか?* +*TortoiseHg で Qct を使うことはできますか?*   - Qct を使う前に是非 TortoiseHg 標準のコミットツールを試して欲しいところですが、 - どうしてもという方もいますで方法を載せておきます: - - 1. `Qct-1.7-standalone-win32.exe <http://qct.sourceforge.net>`_ を - ダウロードしてインストールします - 2. ホームディレクトリの :file:`Mercurial.ini` ファイルに以下の設定を追加します: :: - - [extensions] - qct = C:\path\to\qct.py - - [tortoisehg] - extcommit = qct - - [qct] - path = "C:\Program Files\qct\qct.exe" - - これで :guilabel:`HG コミット` を実行したとき Qct が起動し、 - コマンドラインから :command:`hg qct` が使用可能になります。 - :command:`hgtk ci` を実行しても Qct が起動します。 - - バージョン 0.9 では Qct の起動ができなくなります。 - それと同時に外部コミットツールの設定も廃止されま+ 申し訳ありませんが、外部コミットツールのオプションはバージョン 0.9 で廃止されました   *TortoiseHg で hgk (hg view) を使うことはできますか?*   @@ -123,27 +102,15 @@
  :guilabel:`adiff` という項目が追加されているので、それを選択して :guilabel:`適用`   ボタンを押してダイアログを閉じてください。   -*TortoiseHg は Windows Vista で動作しますか?* - - TortoiseHg 0.8 以降は Windows Vista / 7 の 32ビット・64ビット版共に動作します。 - -*64ビット版 Windows Vista で右クリックメニューを有効にするにはどうすればいいですか?* - - TortoiseHg 0.8 以降のバージョンにアップグレードしてください。 -  *シェル拡張を無効にする方法は? (アイコンオーバーレイと右クリックメニュー)*   - TortoiseHg 0.8 以降を使用している場合、アイコンオーバーレイはトレイアイコンを - クリックして表示されるメニューにある :guilabel:`オプション` から起動できる - タスクバーダイアログで無効にできます。右クリックメニューを無効にする唯一の方法は - TortoiseHg のインストールディレクトリにある :file:`ThgShell.dll` ファイルの - 名前を変更してエクスプローラを再起動します (シェル拡張を完全に無効化)。 - - 古い TortoiseHg を使っている場合はコマンドプロンプトから - :command:`regsvr32 /u "C:\\Program Files\\TortoiseHg\\tortoisehg.dll` - を実行してください (管理者権限が必要)。 :command:`/u` を外して実行することで - 再びシェル拡張を有効化することができます。どちらも Windows を再起動するまで - 反映されません。 + アイコンオーバーレイを無効化するにはトレイアイコンをクリックして表示される + メニューにある :guilabel:`オプション` から起動できるタスクバーダイアログで + 無効にできます。右クリックメニューを非表示にするには TortoiseHg + インストールディレクトリにある :file:`ThgShell.dll` ファイルの名前を変更して + エクスプローラを再起動します。しかしこの方法は右クリックメニューだけでなく、 + アイコンオーバーレイも同時に無効化されます。現在、右クリックメニューのみを + 無効化する簡単な方法はありません。    *TortoiseHg はどこに設定を保存しているの?*   @@ -155,23 +122,17 @@
  3. リポジトリ設定: :file:`{repo-root}\.hg` にある :file:`hgrc` ファイル   2. ダイアログの位置や状態などを保存している :file:`%APPDATA%\\Tortoisehg`   - 以下は Mercurial の設定システムに保存される項目です: :: + 以下は Mercurial の設定システムに保存される設定項目です: ::     [tortoisehg] - extcommit = None   vdiff = vdiff   editor = gvim   tabwidth = 4   longsummary = True - copyhash = False   graphlimit = 500   authorcolor = True   authorcolor.steve = blue   - 詳細については :doc:`settings` や - `issue #50 <http://bitbucket.org/tortoisehg/stable/issue/50/>`_ - をご覧ください。 -  *フォントの変更はできますか?*     一部可能です。 TortoiseHg の各種ダイアログ (コミット、変更点の表示、 @@ -185,18 +146,12 @@
  # 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 -  *GTK のテーマを変更するにはどうすればいいの?*     バージョン 0.7 ではインストール時に選択可能です。それ以降のバージョン   (またはバージョン 0.7 がインストール済み) の場合は手動で変更できます:   - * :file:`C:\\Program Files\\TortoiseHg\\share\\themes` を開きます - (バージョン 0.8 以降は - :file:`C:\\Program Files\\TortoiseHg\\gtk\\share\\themes`) + * :file:`C:\\Program Files\\TortoiseHg\\gtk\\share\\themes` を開きます   * :file:`themes` ディレクトリにあるテーマ名を覚えるか開いたままにします   * :file:`C:\\Program Files\\TortoiseHg\\etc\\gtk-2.0` を開きます   (バージョン 0.8 以降は @@ -207,7 +162,7 @@
  (表示されるセキュリティ警告のダイアログは全て「はい」を選択)   * 変更は次に TortoiseHg を起動したときから反映されます   - 同梱されていないテーマでもそれをダウンロードして :file:`share\\themes` + 同梱されていないテーマでもそれをダウンロードして :file:`gtk\\share\\themes`   ディレクトリにコピーすれば、 :file:`gtkrc` ファイルでそのテーマを設定可能です。    *アンインストールしても大量の DLL や PYD の拡張子のファイルが残ってしまう* @@ -226,6 +181,8 @@
  Mercurial のメーリングリストや IRC (irc.freenode.net の #mercurial)   に尋ねてみてください。   + もしくは hgsubversion 拡張機能を使うという方法もあります。 +  *Windows の TortoiseHg はどこの Python モジュールを参照しているの?*     TortoiseHg は Python の実行に必要な環境を DLL の形で同梱しています。 @@ -249,8 +206,8 @@
   *ダイアログのぎこちないフォント描画を直すにはどうすればいいの?*   - バージョン 0.8 から複数の GTK+ テーマを同梱せず、デフォルトのテーマ - MS-Windows に変更しました。その結果、MS-Windows テーマが原因で + バージョン 0.8 以降では複数の GTK+ テーマを同梱せず、デフォルトのテーマとして + MS-Windows のみを同梱てい。その結果、MS-Windows テーマが原因で   フォント描画がおかしくなる場合があります。これを直すには以下の設定を   TortoiseHg の :file:`gtkrc` ファイルに追加してください: ::  
Added image
Added image
 
31
32
33
34
35
36
 
 
 
37
38
39
 
31
32
33
 
 
 
34
35
36
37
38
39
@@ -31,9 +31,9 @@
 このディレクトリで Mercurial は全てのバージョン情報を保持しています。    .. warning:: - :file:`.hg` ディレクトリ内のファイルには一切触れないください- リポジトリの破損を招きます。 - + :file:`.hg` ディレクトリ内のファイルを編集するのは非常危険+ リポジトリの破損を招きます。ただし :file:`.hg/hgrc` のみ例外的に + 編集が認められています。    コマンドラインからの実行  ------------------------
 
51
52
53
54
55
56
57
58
59
60
61
62
63
 
 
64
65
66
 
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
 
51
52
53
 
 
 
54
55
56
 
 
 
 
57
58
59
60
61
 
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
@@ -51,16 +51,11 @@
  インストーラは最初に古いバージョンをアンインストールするよう促します。   アンインストールは通常のソフトウェアと同様に、スタートメニューから   コントロールパネルを開き、その中の「プログラムの追加と削除」から可能です。 - 必須ではありませんが、もし TortoiseOverlays を利用するプログラムが他に - ないのであれば、こちらもアンインストールしておくことをお奨めします。 - それにより最新の TortoiseOverlays がインストールされます。    .. note::   バージョン 0.8 以降の TortoiseHg がインストールされている場合、 - インストーラを起動する全ての ThgTaskBar アプリケーション - (:file:`thgtaskbar.exe`) を終了しておく必要があります。タスクトレイの - 通知領域に表示されている Mercurial のアイコンを右クリックしてメニューを - 開き、 :guilabel:`Exit` をクリックすれば終了できます。 + インストーラは新しいファイルコピーするときThgTaskbar アプリケーション + 終了します。    言語設定  ^^^^^^^^ @@ -68,34 +63,33 @@
 TortoiseHg のユーザインターフェイスは様々な言語に翻訳されています。  利用可能な全ての言語はインストーラに含まれているため、別途言語パックを  ダウンロードする必要はありません。 -:file:`C:\\Program Files\\TortoiseHg\\locale` 利用可能な言語が見られます。 -言語を有効にするには環境変数 ``LANGUAGE`` に好きな言語コードを設定するだけです。 +:file:`C:\\Program Files\\TortoiseHg\\locale` 利用可能な言語が +用意さています。環境変数 ``LANGUAGE`` に言語コードを設定するだけで +その言語が利用可能になります。  例えば日本語であれば ``set LANGUAGE=ja`` を設定してください。    .. note:: - ``LANGUAGE`` を設定しても :guilabel:`OK` や :guilabel:`Apply` というよう + ``LANGUAGE`` を設定しても :guilabel:`OK` や :guilabel:`Apply` よう   GTK+ 標準のダイアログボタンのラベルが英語のままになっている場合、TortoiseHg   のインストーラがその言語の GTK+ 翻訳ファイルを含んでいないことを意味します。   これはリリース時にご利用の言語の TortoiseHg 翻訳が完了していなかったためです。   -Windows シェル拡張の右クリックメニューはその翻訳を Windows レジストリから -取得します。すでに多くの言語向けに翻訳されており、それらは TortoiseHg -`ダウドページ <http://bitbucket.org/kuy/thg-ja/wiki/install>`_ -から利用可能な言語を確認できます。レジストリファイルをダウンロードしたら -ブルクリックてインストールしてください。ダウンロードしたファイルの拡張子が -:file:`.txt` になっていたら :file:`.reg` に直しておく必要があります。 +Windows シェル拡張の右クリックメニューはその翻訳文字列を Windows レジストリ +から取得しています。すでに多くの言語向けに翻訳されており、それらは +:file:`C:\\Program Files\\TortoiseHg\\cmenu_i18n` にイストルされています。 +使用したい言語のレジストリファイルをダブルクリックすると確認ダイアログが出ますので、 +指示に従ってインストールしてください。      Linux または Max OS の場合  --------------------------   -Fedora 向けの RPM パッケージは -`ダウンロード <http://bitbucket.org/tortoisehg/stable/downloads/>`_ ページに -用意されています。 +Debian の DEB パッケージまたは Fedora 向けの RPM パッケージは +`ダウンロード <http://bitbucket.org/tortoisehg/stable/wiki/download/>`_ +ページに用意されています。    Ubuntu 向けの Deb パッケージは -`ここ <https://launchpad.net/~maxb/+archive/ppa>`_ 、もしくは -`こちら <https://launchpad.net/~tortoisehg-ppa>`_ から入手できます。 +`ここ <https://launchpad.net/~tortoisehg-ppa>`_ から入手できます。    Max OS X 向けのパッケージは用意されていませんが、ソースコードから  インストールすることで hgtk スクリプトを含む全ての TortoiseHg ダイアログが
 
13
14
15
16
 
17
18
19
 
67
68
69
 
 
 
70
71
72
 
13
14
15
 
16
17
18
19
 
67
68
69
70
71
72
73
74
75
@@ -13,7 +13,7 @@
 書かれました。TortoiseHg は Windows のシェル拡張として提供されるため、  ユーザは普段使っている Windows エクスプローラから利用することができます。   -本書の最新版は `公式サイト <http://bitbucket.org/tortoisehg/stable/downloads>`_ +本書の最新版は `公式サイト <http://bitbucket.org/tortoisehg/stable>`_  からダウンロード可能です。    本書の読み方 @@ -67,6 +67,9 @@
 翻訳者、利用者コミュニティ、そして特に貴重なバグレポートおよび機能要望に  協力していただいた利用者に感謝の意を表します。   +TortoiseHg の Windows 向けインストーラには `TortoiseSVN <http://tortoisesvn.net>`_ +プロジェクトによる TortoiseOverlays ハンドラが含まれています。 +  表記規則  ========  
 
53
54
55
 
 
 
 
 
 
 
 
56
57
58
 
93
94
95
96
97
98
99
 
 
 
100
101
102
 
155
156
157
158
159
160
161
162
163
 
 
 
 
164
165
166
 
210
211
212
 
 
 
 
213
214
215
 
218
219
220
221
222
 
223
224
225
226
 
 
 
227
228
229
 
233
234
235
236
 
237
238
239
240
 
 
241
242
243
244
245
246
247
248
249
250
251
252
 
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
101
102
103
 
 
 
 
104
105
106
107
108
109
 
162
163
164
 
 
 
 
 
 
165
166
167
168
169
170
171
 
215
216
217
218
219
220
221
222
223
224
 
227
228
229
 
 
230
231
 
 
 
232
233
234
235
236
237
 
241
242
243
 
244
245
246
247
 
248
249
250
251
252
253
 
 
 
 
 
254
255
256
@@ -53,6 +53,14 @@
  Mercurial 内蔵のウェブサーバを利用した場合はスパム対策のためメールアドレス   の一部のみ表示されます。   +もし Windows 向けのインストーラを使用しないでインストールした場合、GUI +の差分表示ツールを設定しておく必要があります。 :command:`hgtk userconfig` +を実行してグローバル設定ダイアログを表示して TortoiseHg タブを開くと +:guilabel:`GUI 差分表示コマンド` という設定項目があるはずです。 +これのドロップダウンリストに選択肢がない場合は、事前に Mercurial の ExtDiff +拡張機能を有効にし、ツールを設定しておく必要があります。それらの設定は +グローバル設定ダイアログを再起動すると反映されます。 +    リポジトリの初期化  ================== @@ -93,10 +101,9 @@
 なのかを指定します。これにはいくつものやり方があります:    1. エクスプローラで追加したいファイルを右クリックしてメニューを開いて - :menuselection:`TortoiseHg --> 追加` を選択します。 - この操作はぐに実行され、TortoiseHg のダイアログ表示されませんが- エクスプローラでそのファイルのアイコンオーバーレイが追加されたことを示す - アイコンに変わったことを確認できます+ :menuselection:`TortoiseHg --> 追加...` を選択します。 +るとファイル追加を確認するダイアログ表示され、それで問題なければ + :guilabel:`追加` ボタンを押してくだ   2. もしくは、ステータスツール (:menuselection:`TortoiseHg --> 変更点の確認`   またはコマンドラインから :command:`hgtk status`) を開いて追加したいファイルの @@ -155,12 +162,10 @@
   これであなたの成果を共有するための準備が整いました。あとはこのリポジトリを  他のメンバからも参照できる共用スペースにコピーするだけでOKです。 -Mercurial ではこを *リポジトリのクローン (cloning your repository)* -呼んでいます。リポジトリを共用スペース、例えば共有ドライブ、またウェブサイト -などにクローンすれば、それが開発チームのマージポイントになるでしょう。 -エクスプローラで共有ドライブに置いたリポジトリを開き、そのディレクトリの -右クリックメニューから :menuselection:`TortoiseHg --> リポジトリのクローン` -を選か、コマンドラインから :command:`hgtk clone` を実行します。 +Mercurial ではこのコピー操作を *リポジトリのクローン (cloning your repository)* +と呼んでいます。リポジトリを共有ドライブにするには右クリックメニューから +:menuselection:`TortoiseHg --> リポジトリのクローン` を選択するか、 +コマンドラインから :command:`hgtk clone` を実行します。    .. figure:: figures/share.png   :alt: クローンダイアログ @@ -210,6 +215,10 @@
 手っ取り早い方法はコミットツールを使うことです:    .. {{images/image001.png}} +.. figure:: figures/overlayicons.png + :alt: アイコンオーバーレイ + + Windows Vista でのアイコンオーバーレイ表示    コミットツールは変更の差分を表示してくれます。もしくは普段使用している GUI の  差分表示ツール (kdiff など) を使用することもできます。 Mercurial のリポジトリは @@ -218,12 +227,11 @@
   変更を共有リポジトリに公開する準備が整ったら、   -1. まだ変更をローカルリポジトリにコミットしていないのであれば、 - 先にそれを済ませます (前述)。 +1. ローカルリポジトリに変更点をコミットします (前述)。  2. 共有リポジトリから変更をローカルリポジトリにプル (pull) します: - 右クリックメニューから :menuselection:`TortoiseHg --> 同期ツール` または - コマンドラインから :command:`hgtk synch` を実行し、共有リポジトリの場所を - 選択してからツールバーの :guilabel:`プル` ボタンを押します。 + 右クリックメニューから :menuselection:`TortoiseHg --> ログの表示` または + コマンドラインから :command:`hgtk log` を実行し、共有リポジトリの場所を + 同期バーで選択してツールバーの :guilabel:`プル` ボタンを押します。  3. いくつかのチェンジセットがプルされた場合、それらの変更とローカルでの変更を   マージして、マージ結果をローカルリポジトリにコミットしてください。   チェンジログビューアから (:menuselection:`TortoiseHg --> ログの表示` @@ -233,20 +241,16 @@
  してください。  4. マージが正しく行われたかどうかテストなどで検証してください。  5. 変更を共有リポジトリにプッシュ (push) するために、 - :menuselection:`TortoiseHg --> 同期ツール` または :command:`hgtk synch` + :menuselection:`TortoiseHg --> ログの表示` または :command:`hgtk log`   で同期ダイアログを開き、共有リポジトリの場所を選択してから   :guilabel:`プッシュ` ボタンを押します。   -文章にすると複雑に見えますが、実際には同期ツのボタンを押すだけです。 +文章にすると複雑に見えますが、実際にはコミットしてチェンジログビュのボタンを +押すだけです。    .. note::   マージ作業に失敗したとしても安全に最初からマージ作業を始めることが可能です。   -.. figure:: figures/synchronize.png - :alt: 同期ダイアログ - - 同期ダイアログ -  Mercurial は共同作業を簡単に、素早く、効率的にします。  詳しくは Mercurial の `wiki <http://mercurial.selenic.com/wiki/>`_  をご覧ください。
 
34
35
36
37
 
38
39
 
40
41
42
43
 
 
 
44
45
46
47
48
49
 
 
 
 
 
50
51
52
 
112
113
114
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
116
117
 
122
123
124
125
126
127
128
129
130
131
 
136
137
138
 
 
 
 
 
 
 
 
 
 
 
 
139
140
141
 
157
158
159
160
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
162
163
 
313
314
315
 
 
 
 
316
317
318
 
332
333
334
 
 
 
 
 
 
 
 
335
336
337
 
34
35
36
 
37
38
 
39
40
41
 
 
42
43
44
45
 
 
 
 
 
46
47
48
49
50
51
52
53
 
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
 
140
141
142
 
 
 
 
143
144
145
 
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
 
183
184
185
 
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
 
355
356
357
358
359
360
361
362
363
364
 
378
379
380
381
382
383
384
385
386
387
388
389
390
391
@@ -34,19 +34,20 @@
 方が良いでしょう。TortoiseHg 設定ダイアログもこれに従い、次の2つのファイルにのみ  変更を行います:   -Global +グローバル   ユーザ設定ファイル :file:`Mercurial.ini` または :file:`hgrc` を編集します -Repository +リポジトリ   リポジトリ設定ファイル :file:`.hg/hgrc` を編集します   -TortoiseHg バージョン 0.8 かはこ2つのファイルをダイアログ上部のコンボボックスから -切り替えることができます。 +どちらの設定ファイルを編集するかはダイアログ上部のコンボボックスから切り替える +ことができます。さらにあらかじめ設定されている GUI エディタで直接編集をすること +もできます。   -リポジトリ設定ファイルは他の設定ファイルより優先されるためどんな設定でも記述できますが -多くの TortoiseHg ユーザは全ての設定をユーザ設定ファイルにまとめて保存しておき、 -リポジトリ設定ファイルにはリポジトリパスのエイリアスや、ウェブサーバ設定など -のみ保存するでしょう。共通にするこの多ユーザ名であても、リポジトリごとに異なる -ユーザ名を設定可能です。ユーザおよびリポジトリ設定ファイルは自分で作成するか、 +これら2種類の設定ファイルの使い分けについては、リポジトリ設定ファイルは +他の設定ファイルより優先されるため、全てのリポジトリに共通する設定を +ユーザ設定ファイルにまとめて保存しておき、リポジトリ設定ファイルには +リポジトリパスのエイリアスや、ウェブサーバ設定といっリポジトリ固有の設定 +保存する、といった感じになります。ユーザおよびリポジトリ設定ファイルは自分で作成するか、  初めて設定ダイアログを開くまで存在しませんので注意してください。     @@ -112,6 +113,23 @@
  差分表示パネルをステータス・シェルフ・コミットダイアログのファイル一覧の下に配置します。   デフォルト:False (ファイル一覧の右側に表示)。   +:guilabel:`標準エラーの補足:` + 標準エラー出力の実行時エラーを補足して表示します。デフォルト:True。 + +:guilabel:`ダイアログプロセス生成:` + hgtk をコマンドラインから起動したとき、ダイアログ用のバックグラウンドプロセスを + 生成するかどうかを設定します。デフォルト:True。 + +:guilabel:`タイトルの絶対パス表示:` + 各種ダイアログのタイトルにリポジトリのディレクトリ名のかわりにフルパスを + 表示します。デフォルト:False。 + +:guilabel:`スペルチェック言語:` + スペルチェックに使用するデフォルトの言語を指定します。指定されなかった場合は + システム既定の言語が使用されます。例:en, en_GB, en_US。 + スペルチェックには gtkspell が必要になるため、 GNOME デスクトップを + 採用している環境でのみ使用可能です。 +    .. module:: commit.settings   :synopsis: コミットダイアログに関する設定 @@ -122,10 +140,6 @@
 :guilabel:`ユーザ名:`   コミット時に使用する名前。   -:guilabel:`外部コミットツール:` - TortoiseHg から起動するコミットツール。現在、Qct は同梱されていません。 - デフォルト:なし (TortoiseHg のコミットツールを起動)。 [DEPRECATED] -  :guilabel:`要約行最大文字数:`   コミットログ最初の行 (要約行) の最大文字数。これが設定された場合、   要約行が長すぎる、もしくは要約行とそれ以降のログが空行で区切られていないときに @@ -136,6 +150,18 @@
  設定文字数を上回っていると警告が表示され、その文字数で強制的に折り返すための   ポップアップメニューが表示されます。デフォルト:0 (制限しません)。   +:guilabel:`コミット後にプッシュ:` + True にすることで *コミット後にプッシュ* チェックボックス の初期値として + 使用されます。デフォルト:False。 + +:guilabel:`自動コミットリスト:` + コミットに自動的に含めたいファイルをカンマ区切りで指定します。 + 通常はグローバル設定ではなくリポジトリ設定で使用します。デフォルト:指定無し。 + +:guilabel:`自動除外リスト:` + ステータス、コミット、シェルフツールにおいて自動的にチェックを外したい + ファイルをカンマ区切りで指定します。デフォルト:指定無し。 +    .. module:: changelog.settings   :synopsis: チェンジログの表示に関する設定 @@ -157,7 +183,23 @@
   :guilabel:`ハッシュ値のコピー:`   チェンジログビューアでそのとき選択しているチェンジセットのチェンジセット ID - をクリップボードにコピーできるようにします。デフォルト:False。 + をクリップボードにコピーできるようにします。廃止予定。デフォルト:False。 + +:guilabel:`削除済みブランチ:` + リポジトリでブランチ名一覧を作成する際に無視するブランチ名をカンマ区切りで指定。 + デフォルト:指定無し。 + +:guilabel:`ブランチの色:` + ブランチ名とその色を "branch:#XXXXXX" の形式で空白文字区切りで指定。 + ブランチ名に含まれる空白文字とコロン(":")はバックスラッシュ("\")で + エスケープする必要があります。同様に他の文字についても、例えば "\u0040" + はアットマーク("@")にデコードされ、"\n" は改行になります。 + デフォルト:指定無し。 + +:guilabel:`非表示タグ:` + 非表示にしたいタグ名を空白区切りで指定。便利な使用例:"qbase qparent qtip" + を設定することで MQ 拡張機能が使用するタグを隠すことができます。 + デフォルト:指定無し。      .. module:: synchronize.settings @@ -313,6 +355,10 @@
 差分  ----   +:guilabel:`パッチ改行文字:` + パッチファイルの改行文字を LF または CR+LF に正規化します。 + Strict の場合は正規化されません。デフォルト:Strict。 +  :guilabel:`Git 拡張形式:`   GIT の拡張差分ヘッダ形式を使用します。デフォルト:False。   @@ -332,6 +378,14 @@
  比較時に空行の有無を無視します。デフォルト:False。     +キーボードショートカット +======================== + +:kbd:`Ctrl-Enter` + 変更を保存してダイアログを閉じます。これは :guilabel:`OK` ボタンを + 押したときと同じ動作になります。 + +  コマンドラインからの実行  ========================  
 
22
23
24
25
26
27
28
 
29
30
31
 
 
32
33
34
 
38
39
40
 
 
 
 
 
41
42
43
 
58
59
60
 
 
 
 
 
 
 
 
 
 
 
 
61
62
63
 
22
23
24
 
 
 
 
25
26
27
28
29
30
31
32
33
 
37
38
39
40
41
42
43
44
45
46
47
 
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
@@ -22,13 +22,12 @@
   ツールバーボタンを左から順に見ていきます:   - :guilabel:`再読み込み` - 作業ディレクトリの状態を再読み込みします。 - 再読み込み後もチェックボックスの選択状態は保たれます。 - :guilabel:`シェルフ` + :guilabel:`シェルフ`   チェックされたファイルの選択されたハンクをシェルフします。   :guilabel:`シェルフから戻す`   シェルフされた変更点を作業ディレクトリに戻します。 + :guilabel:`差分` + チェックの入っているファイルの GUI 差分を表示します。   :guilabel:`元に戻す`   チェックされているファイルを変更を加える前の状態に戻します。   その変更がマージの場合はどちらの親リビジョンに戻すか選択できます。 @@ -38,6 +37,11 @@
  チェックされているファイルを指定されたディレクトリに移動します。   :guilabel:`削除`   チェックされているファイルを削除します。 + :guilabel:`破棄` + チェックされている管理済みファイルを破棄します。 + :guilabel:`再読み込み` + 作業ディレクトリの状態を再読み込みします。 + 再読み込み後もチェックボックスの選択状態は保たれます。    ファイル一覧には4つの列があります:   @@ -58,6 +62,18 @@
 無効になります。     +タブ +---- + +シェルフツールの差分表示パネルには4つのタブがあります: + + 1) テキスト差分 - 選択されているファイルの差分が表示されます + 2) ハンク選択 - 選択されているファイルのハンク選択状態を変更できます + 3) シェルフプレビュー - 全ての選択されている変更点が表示されます。このプレビュー + に表示されている内容が作業ディレクトリから取り除かれてシェルフに格納されます。 + 4) シェルフ内容 - シェルフに格納されている内容が表示されます + +  変更点をシェルフする  --------------------  
 
1
2
3
 
 
 
4
5
6
 
21
22
23
 
 
 
 
 
 
 
 
 
 
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
38
39
40
 
1
2
3
4
5
6
7
8
9
 
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
 
 
40
41
42
43
 
 
 
 
44
45
46
47
@@ -1,6 +1,9 @@
 構成管理を始める  ================   +.. module:: start + :synopsis: リポジトリ作成に使用するダイアログ +  プロジェクトで Mercurial または TortoiseHg を使って構成管理を始める方法は  いろいろあります。   @@ -21,20 +24,24 @@
 これ以降の節をご覧ください。     +リポジトリの新規作成 +---------------------- + +TODO + +リポジトリのクローン +-------------------- + +TODO +  プロジェクトの変換  ------------------   -TortoiseHg にはリポジトリを変換するためのツールはありませんが、 -Mercurial のリポジトリに変換しさえすれば TortoiseHg を利用できます。 -  どのように変換するのかについてはこのマニュアルの範囲を越えるため、  より詳細な説明については  http://mercurial.selenic.com/wiki/RepositoryConversion  を参照してください。 - -.. NEEDFORREVIEW - -通常、 *convert* 拡張機能を有効にして親ディレクトリから:: +*convert* 拡張機能を有効にして親ディレクトリから::     hg convert myproject  
 
9
10
11
 
 
 
 
12
13
14
 
21
22
23
24
 
 
25
26
 
 
 
 
27
28
29
 
52
53
54
55
 
 
56
57
58
59
60
 
 
61
62
63
 
89
90
91
92
 
93
94
95
96
97
 
 
98
99
 
100
101
102
 
145
146
147
148
149
150
151
152
153
154
155
156
157
 
9
10
11
12
13
14
15
16
17
18
 
25
26
27
 
28
29
30
31
32
33
34
35
36
37
38
 
61
62
63
 
64
65
66
67
 
 
 
68
69
70
71
72
 
98
99
100
 
101
102
 
 
 
 
103
104
105
 
106
107
108
109
 
152
153
154
 
 
 
 
 
 
 
 
 
155
@@ -9,6 +9,10 @@
    同期ダイアログ   +.. note:: + 同期ツールはバージョン 0.9 において廃止予定となり、以降のリリースで削除されます。 + そのため同期操作はチェンジログビューアで行うことを推奨しています。 +  同期ツールはリポジトリ間でチェンジセットを転送したり、メールを送信するのに使います。     :guilabel:`受信` @@ -21,9 +25,14 @@
  それらはローカルにあって、指定したリポジトリにはないチェンジセットです。   :guilabel:`プッシュ`   チェンジセットを指定したリポジトリにプッシュします。その結果、 - ローカルにおける *tip* リビジョンが指定したリポジトリの新しい *tip* リビジョンになります。 + ローカルにおける *tip* リビジョンが指定したリポジトリの新しい + *tip* リビジョンになります。   :guilabel:`メール送信`   指定したリポジトリへのチェンジセットをメールとして送信します + :guilabel:`シェルフ` + いくつかの同期操作は作業ディレクトリがクリーンであることを前提として + いるため、シェルフツールを起動して作業ディレクトリにおける変更点を + 一時的にシェルフに退避します。   :guilabel:`中止`   現在の操作を中止します   :guilabel:`設定` @@ -52,12 +61,12 @@
  変更が衝突した場合にマージが発生する可能性があります。   :guilabel:`取得`   :command:`hg fetch` と同じ操作になります。動作の詳細については fetch 拡張機能の - ヘルプを参照してください。 + ヘルプを参照してください。この機能は fetch 拡張機能がユーザによって有効化されて + いるときのみ表示されます。   :guilabel:`リベース`   :command:`hg pull --rebase` と同じ操作になります。動作の詳細については - rebase 拡張機能のヘルプを参照してください。 - リベス操作はリポジトリオブジェクトを保ツールへ破壊的な操作となるため、 - チェンジログビューアとの連携動作を無効にします。 + rebase 拡張機能のヘルプを参照してください。この機能は rebase 拡張機能が + ザによって効化されていときみ表示されます。    :guilabel:`プロキシサーバを使用する` チェックボックスは同期操作ごとに  プロキシサーバの設定を無効化するのに便利です。 @@ -89,14 +98,12 @@
 プルした後  ----------   -チェンジセットがローカルのリポジトリにプルされた後、ダイアログの下部に2つのボタンが表示されます: +チェンジセットがローカルのリポジトリにプルされた後、ダイアログの下部にボタンが表示されます:   - :guilabel:`プルされたチェンジセットを表示` - チェンジログビューアを開いてプルされたチェンジセットを確認します - :guilabel:`tipリビジョンに更新` - 作業ディレクトリを新しい tip リビジョンに更新します + :guilabel:`tip リビジョンに更新` + 作業ディレクトリを現在のブランチの tip リビジョンに更新します   -どちらのボタンもその操作が有効なときのみ表示されます。 +ボタンは使用可能なときのみ表示されます。      メール送信 @@ -145,13 +152,4 @@
 それ以外のエイリアスの場合は *default* URL が選択されます。  選択された URL が見つからない場合は最初に見つかったパスが使用されます。   -0.7 からの変更点 ----------------- - -* リポジトリパスのドロップダウンリストに最近使用したパスを含めない。 - 表示されるのはリポジトリで設定されたパスのみ。 -* メールダイアログに :guilabel:`In-Reply-To` タグと添付ファイル形式の - 設定項目を追加。 -* メールダイアログはパッチ数に関わらず説明メールを送信するようになった。 -  .. vim: noet ts=4
Show Entire File doc/​source/​changelog.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
 
102
103
104
105
 
106
107
108
 
102
103
104
 
105
106
107
108
@@ -102,7 +102,7 @@
 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 also attempt to follow renames and -copies, so some lines in the graph may corrolate to different filenames +copies, so some lines in the graph may correlate to different filenames  than the original annotated file path. Renames are indicated in the  graph by color changes within a column.  
doc/​source/​figures/​commit.png
size changed from 1017x674 to 830x560
mode changed from RGBA to RGB
Removed image
Added image
doc/​source/​figures/​log.png
size changed from 899x730 to 753x564
mode changed from RGBA to RGB
Removed image
Added image
doc/​source/​figures/​searchbar.png Side by side
size changed from 834x28 to 761x25
Removed image
Added image
Subtracted image Added image
doc/​source/​figures/​settings.png
size changed from 446x646 to 442x642
Removed image
Added image
doc/​source/​figures/​syncbar.png
size changed from 628x29 to 763x28
Removed image
Added image
Change 1 of 2 Show Entire File hgtk Stacked
 
28
29
30
 
31
32
33
 
56
57
58
 
59
60
61
 
28
29
30
31
32
33
34
 
57
58
59
60
61
62
63
@@ -28,6 +28,7 @@
   from mercurial import demandimport  demandimport.ignore.append('win32com.shell') +demandimport.ignore.append('tortoisehg.util.config')  demandimport.enable()  from mercurial import ui, util  from tortoisehg.util.hgversion import hgversion, checkhgversion @@ -56,6 +57,7 @@
  mystderr = cStringIO.StringIO()   origstderr = sys.stderr   sys.stderr = mystderr + ret = 0   try:   ret = tortoisehg.hgtk.hgtk.dispatch(sys.argv[1:])   sys.stderr = origstderr
Show Entire File i18n/​tortoisehg/​ca.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​cs.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​da.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​de.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​es.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​fr.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​he.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​it.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​ja.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​ko.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​nl.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​pl.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​pt.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​pt_BR.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​ru.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​uk.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​zh_CN.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​zh_TW.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 3 Show Entire File setup.py Stacked
 
10
11
12
 
13
14
15
 
54
55
56
57
 
58
59
60
 
158
159
160
 
 
161
162
 
163
164
165
 
 
 
 
 
 
 
166
167
168
 
10
11
12
13
14
15
16
 
55
56
57
 
58
59
60
61
 
159
160
161
162
163
164
 
165
166
167
 
168
169
170
171
172
173
174
175
176
177
@@ -10,6 +10,7 @@
 import time  import sys  import os +import subprocess  from distutils.core import setup  from distutils.command.build import build  from distutils.spawn import spawn, find_executable @@ -54,7 +55,7 @@
  _scripts = []   _data_files = []   _packages = ['tortoisehg.hgtk', 'tortoisehg.hgtk.logview', - 'tortoisehg.util'] + 'tortoisehg.util', 'tortoisehg']   extra = {}   hgextmods = []   @@ -158,11 +159,19 @@
  (scripts, packages, data_files, extra) = setup_posix()   desc='TortoiseHg dialogs for Mercurial VCS'   +version = '' +  try: - l = os.popen('hg -R . id -it').read().split() + l = os.popen('hg -R . id -i -t').read().split()   while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags   l.pop() - version = l and l[-1] or 'unknown' # latest tag or revision number + if len(l) > 1: # tag found + version = l[-1] + if l[0].endswith('+'): # propagate the dirty status to the tag + version += '+' + elif len(l) == 1: # no tag found + cmd = 'hg parents --template {latesttag}+{latesttagdistance}-' + version = os.popen(cmd).read() + l[0]   if version.endswith('+'):   version += time.strftime('%Y%m%d')  except OSError:
 
55
56
57
58
 
59
60
61
 
55
56
57
 
58
59
60
61
@@ -55,7 +55,7 @@
  # changeset info   style = csinfo.panelstyle(label=_('Changeset Description'),   margin=4, padding=2) - self.csetframe = csinfo.create(repo, rev, style) + self.csetframe = csinfo.create(repo, rev, style, withupdate=True)   self.vbox.pack_start(self.csetframe, False, False, 2)     # backout commit message
Show Entire File tortoisehg/​hgtk/​changeset.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
 
145
146
147
148
 
149
150
151
152
 
 
153
154
155
 
269
270
271
272
 
 
273
274
275
 
300
301
302
303
 
304
305
306
 
336
337
338
339
 
 
340
341
342
 
378
379
380
381
 
382
383
384
385
386
387
388
389
390
391
392
 
 
 
 
 
 
 
 
 
 
393
394
395
 
439
440
441
 
442
443
444
 
449
450
451
452
 
 
453
454
455
456
 
 
457
458
459
 
554
555
556
557
 
558
559
560
 
145
146
147
 
148
149
150
 
 
151
152
153
154
155
 
269
270
271
 
272
273
274
275
276
 
301
302
303
 
304
305
306
307
 
337
338
339
 
340
341
342
343
344
 
380
381
382
 
383
384
385
 
 
 
 
 
 
 
 
 
386
387
388
389
390
391
392
393
394
395
396
397
398
 
442
443
444
445
446
447
448
 
453
454
455
 
456
457
458
459
460
 
461
462
463
464
465
 
560
561
562
 
563
564
565
566
@@ -145,11 +145,11 @@
  date = self.opts.get('date') or ''   pats = ' '.join(self.pats) or ''   if self.qnew: - return root + ' - qnew' + return root + _(' - qnew')   elif self.mqmode:   patch = self.repo.mq.lookup('qtip') - return root + ' - qrefresh ' + patch - return root + ' - ' + ' '.join(['commit', pats, user, date]) + return root + _(' - qrefresh ') + patch + return root + ' '.join([_(' - commit'), pats, user, date])     def get_icon(self):   return 'menucommit.ico' @@ -269,7 +269,8 @@
  self.update_parent_labels()   self.update_commit_button()   if not self.committer_cbbox.get_active_text(): - user = self.opts['user'] or self.repo.ui.config('ui', 'username') + user = self.opts['user'] or os.environ.get('HGUSER') or \ + self.repo.ui.config('ui', 'username')   if user:   update_recent_committers(hglib.toutf(user))   if not self.autoinc_entry.get_text(): @@ -300,7 +301,7 @@
  adv_hbox.pack_start(self.committer_cbbox, True, True, 2)   self._mru_committers = self.settings.mrul('recent_committers')   self.update_recent_committers() - committer = self.repo.ui.config('ui', 'username') + committer = os.environ.get('HGUSER') or self.repo.ui.config('ui', 'username')   if committer:   self.update_recent_committers(committer)   self.committer_cbbox.set_active(0) @@ -336,7 +337,8 @@
  else:   self.qnew_name = None   - liststore = gtk.ListStore(str, str) + liststore = gtk.ListStore(str, # summary line (utf-8) + str) # full commit message   self.msg_cbbox = gtk.ComboBox(liststore)   cell = gtk.CellRendererText()   self.msg_cbbox.pack_start(cell, True) @@ -378,18 +380,19 @@
  # parent changeset info   parents_vbox = gtk.VBox(spacing=1)   self.parents_frame = parents_vbox - style = csinfo.labelstyle(contents=('Parent: %(rev)s', + style = csinfo.labelstyle(contents=(_('Parent: %(rev)s'),   ' %(athead)s', ' %(branch)s', ' %(tags)s',   ' %(summary)s'), selectable=True) - def data_func(widget, ctx): - return widget.get_data('ishead') or self.mqmode - def markup_func(widget, value): - if value: - return '' - text = '[%s]' % _('not at head revision') - return gtklib.markup(text, weight='bold') - custom = csinfo.custom(athead={ - 'data': data_func, 'markup': markup_func}) + def data_func(widget, item, ctx): + if item == 'athead': + return widget.get_data('ishead') or self.mqmode + raise csinfo.UnknownItem(item) + def markup_func(widget, item, value): + if item == 'athead' and value is False: + text = '[%s]' % _('not at head revision') + return gtklib.markup(text, weight='bold') + raise csinfo.UnknownItem(item) + custom = csinfo.custom(data=data_func, markup=markup_func)   factory = csinfo.factory(self.repo, custom, style)   def add_parent():   label = factory() @@ -439,6 +442,7 @@
  return   buf.set_text(model[index][1])   buf.set_modified(False) + combobox.set_active(-1)     def first_msg_popdown(self, combo, shown):   combo.disconnect(self.popupid) @@ -449,11 +453,13 @@
  if msg:   self._mru_messages.add(msg)   self.settings.write() - if self.popupid is not None: return + if self.popupid is not None: + return   liststore = self.msg_cbbox.get_model()   liststore.clear()   for msg in self._mru_messages: - if not msg: continue + if not msg: + continue   sumline = hglib.toutf(hglib.tounicode(msg).splitlines()[0])   liststore.append([sumline, msg])   @@ -554,7 +560,7 @@
  new_sentence = ['']     for part in parts: - if len(new_sentence[-1]) + len(part) > line_width: + if len(new_sentence[-1]) + len(part) + 1 > line_width:   new_sentence.append('')     new_sentence[-1] += '%s ' % part
Show Entire File tortoisehg/​hgtk/​csinfo.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
 
30
31
32
33
 
34
35
 
36
37
38
 
340
341
342
 
 
 
 
 
 
343
344
345
346
347
 
348
349
350
351
352
353
354
355
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
356
357
 
 
 
 
 
 
358
359
360
 
30
31
32
 
33
34
 
35
36
37
38
 
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
@@ -30,9 +30,9 @@
     class Prompt(SimpleMessage): - def __init__(self, title, message, parent): + def __init__(self, title, message, parent, type=gtk.MESSAGE_INFO):   SimpleMessage.__init__(self, parent, gtk.DIALOG_MODAL, - gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE) + type, gtk.BUTTONS_CLOSE)   self.set_title(hglib.toutf(title))   self.set_markup('<b>' + hglib.toutf(message) + '</b>')   mod = gtklib.get_thg_modifier() @@ -340,21 +340,41 @@
  def get_menuitem(self, name):   return self.menuitems[name]   + def get_widgets(self, name): + widgets = [] + widgets.append(self.toolbuttons.get(name)) + widgets.append(self.menuitems.get(name)) + return widgets +   def cmd_set_sensitive(self, name, sensitive): - ws = [] - ws.append(self.toolbuttons.get(name)) - ws.append(self.menuitems.get(name)) - for w in ws: + for w in self.get_widgets(name):   if w:   w.set_sensitive(sensitive)     def cmd_set_active(self, name, active): - ws = [] - ws.append(self.toolbuttons.get(name)) - ws.append(self.menuitems.get(name)) - for w in ws: + for w in self.get_widgets(name): + if w and hasattr(w, 'set_active'): + w.set_active(active) + + def cmd_get_active(self, name, fallback=None): + prev = None + for w in self.get_widgets(name): + if w and hasattr(w, 'set_active'): + active = w.get_active() + if prev is not None and prev != active: + return fallback + prev = active + return prev + + def cmd_handler_block_by_func(self, name, func): + for w in self.get_widgets(name):   if w: - w.set_active(active) + w.handler_block_by_func(func) + + def cmd_handler_unblock_by_func(self, name, func): + for w in self.get_widgets(name): + if w: + w.handler_unblock_by_func(func)     def get_reponame(self):   return hglib.get_reponame(self.repo)
 
16
17
18
19
 
20
21
22
 
25
26
27
 
 
 
 
28
29
30
 
158
159
160
161
162
 
 
163
164
 
 
 
 
 
165
166
167
 
198
199
200
201
 
202
203
204
 
213
214
215
216
217
218
219
 
229
230
231
 
 
 
 
 
 
 
 
 
 
 
 
232
233
234
 
338
339
340
341
 
342
343
344
 
16
17
18
 
19
20
21
22
 
25
26
27
28
29
30
31
32
33
34
 
162
163
164
 
 
165
166
167
 
168
169
170
171
172
173
174
175
 
206
207
208
 
209
210
211
212
 
221
222
223
 
224
225
226
 
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
 
357
358
359
 
360
361
362
363
@@ -16,7 +16,7 @@
 from tortoisehg.util.i18n import _  from tortoisehg.util import paths, hglib, thread2   -from tortoisehg.hgtk import hgtk +from tortoisehg.hgtk import hgtk, gdialog    if gtk.gtk_version < (2, 14, 0):   # at least on 2.12.12, gtk widgets can be confused by control @@ -25,6 +25,10 @@
 else:   from gobject import markup_escape_text   +if gobject.pygobject_version <= (2,12,1): + # http://www.mail-archive.com/tortoisehg-develop@lists.sourceforge.net/msg06900.html + raise Exception('incompatible version of gobject') +  def set_tortoise_icon(window, thgicon):   ico = paths.get_tortoise_icon(thgicon)   if ico: window.set_icon_from_file(ico) @@ -158,10 +162,14 @@
  """run the file dialog, either return a file name, or False if   the user aborted the dialog"""   try: - import win32gui, win32con, pywintypes - return self.runWindows() + import win32gui, win32con, pywintypes + filepath = self.runWindows()   except ImportError: - return self.runCompatible() + filepath = self.runCompatible() + if filepath: + return self.overwriteConfirmation(filepath) + else: + return False     def runWindows(self):   @@ -198,7 +206,7 @@
  while thread.isAlive():   # let gtk process events while we wait for rundlg finishing   gtk.main_iteration(block=True) - fname = None + fname = False   if q.qsize():   fname = q.get(0)   return fname @@ -213,7 +221,6 @@
  buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,   gtk.STOCK_SAVE, gtk.RESPONSE_OK)   dlg = gtk.FileChooserDialog(self.title, None, action, buttons) - dlg.set_do_overwrite_confirmation(True)   dlg.set_default_response(gtk.RESPONSE_OK)   dlg.set_current_folder(self.initial)   if not self.open: @@ -229,6 +236,18 @@
  result = False   dlg.destroy()   return result + + def overwriteConfirmation(self, filepath): + result = filepath + if os.path.exists(filepath): + res = gdialog.Confirm(_('Confirm Overwrite'), [], None, + _('The file "%s" already exists!\n\n' + 'Do you want to overwrite it?') % filepath).run() + if res == gtk.RESPONSE_YES: + os.remove(filepath) + else: + result = False + return result    class NativeFolderSelectDialog:   """Wrap the windows folder dialog, or display default gtk dialog if @@ -338,7 +357,7 @@
  All options must be passed as keywork arguments.   """   if len(kargs) == 0: - return text + return markup_escape_text(str(text))   attr = ''   for name, value in kargs.items():   attr += ' %s="%s"' % (name, value)
 
30
31
32
33
34
35
36
 
 
37
38
39
 
30
31
32
 
 
 
 
33
34
35
36
37
@@ -30,10 +30,8 @@
  if len(title) > 80:   title = title[:80] + '...'   title = hglib.toutf(title.replace('\n', ' ')) - gtk.Dialog.__init__(self, - title=title, - flags=gtk.DIALOG_MODAL, - ) + gtk.Dialog.__init__(self, title=title, flags=gtk.DIALOG_MODAL) + self.set_has_separator(False)     gtklib.set_tortoise_icon(self, 'hg.ico')   gtklib.set_tortoise_keys(self)
Show Entire File tortoisehg/​hgtk/​hgemail.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​hgtk.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​histdetails.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​history.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​merge.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​quickop.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​status.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​tagadd.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​thgconfig.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​thgmq.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​thgstrip.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​visdiff.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​util/​hglib.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​DebugShellExt.reg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​Makefile.nmake Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​README.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​ThgDebug.cpp Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​ThgDebug.h Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​stdafx.h Stacked
This file's diff was not loaded because this changeset is very large. Load changes