**************
設定ダイアログ
**************

.. module:: settings.dialog
	:synopsis: TortoiseHg および Mercurial の設定ダイアログ

.. figure:: figures/settings.png
	:alt: 設定ダイアログ

	設定ダイアログ

設定ダイアログでは TortoiseHg と Mercurial 本体の両方の設定ができます。
TortoiseHg は Mercurial の設定システムを利用して設定情報を保存・取得しているため、
本質的に同じになります。

Windows の Mercurial には3つの設定ファイルがあります。

1)	グローバル設定ファイル：
	:file:`C:\\Program Files\\TortoiseHg\\Mercurial.ini`
	このファイルは最初に読み込まれるため、最も優先順位が低くなります。
2)	ユーザ設定ファイル：
	:file:`C:\\Documents and Settings\\ユーザ名\\Mercurial.ini`
	このファイルは2番目に読み込まれるため、前述のグローバル設定ファイルを
	上書きできます。
3)	リポジトリ設定ファイル：
	:file:`リポジトリのルート\\.hg\\hgrc`
	このファイルは最後に読み込まれるため、グローバルおよびユーザ設定ファイルを
	上書きできます。

グローバル設定ファイルは TortoiseHg のアップグレード時に上書きされる可能性があるため、
このファイルを編集することはお勧めできません。その代わり、ホームディレクトリにある
ユーザ設定ファイル :file:`Mercurial.ini` または :file:`hgrc` ファイルを変更した
方が良いでしょう。TortoiseHg 設定ダイアログもこれに従い、次の2つのファイルにのみ
変更を行います：

ユーザ
	ユーザ設定ファイル :file:`Mercurial.ini` または :file:`hgrc` を編集します
リポジトリ
	リポジトリ設定ファイル :file:`.hg/hgrc` を編集します

どちらの設定ファイルを編集するかはダイアログ上部のコンボボックスから切り替える
ことができます。さらにあらかじめ設定されている GUI エディタで直接編集をすること
もできます。

これら2種類の設定ファイルの使い分けについては、リポジトリ設定ファイルは
他の設定ファイルより優先されるため、すべてのリポジトリに共通する設定を
ユーザ設定ファイルにまとめて保存しておき、リポジトリ設定ファイルには
リポジトリパスのエイリアスや、ウェブサーバ設定といったリポジトリ固有の設定を
保存する、といった感じになります。ユーザおよびリポジトリ設定ファイルは自分で作成するか、
初めて設定ダイアログを開くまで存在しませんので注意してください。


設定ページ
==========

設定ツールは複数のページに分かれており、各ページは :file:`Mercurial.ini`
ファイルの各セクションに対応しています。

:guilabel:`同期` ページを除けばすべてのページは同じレイアウトになっており、
設定項目がドロップダウンコンボボックスと共に一覧になっています。
コンボボックスには設定可能な値の他、ユーザが過去に入力した値の履歴も含みます。
設定項目のラベルにはツールチップが設定してあるため、マウスカーソルを乗せると
その項目の詳しい説明を見ることができます。コンボボックスをクリックするなどして
アクティブにしても、ダイアログ下部の説明表示用のフレームに同じ説明が表示されます。

設定項目についてのより詳細な情報については Mercurial の公式 Wiki を参照してください。
ただし、最初の3つのページ (:guilabel:`TortoiseHg`, :guilabel:`コミット`,
:guilabel:`チェンジログ`) については TortoiseHg 固有の設定になるため、
Mercurial の Wiki には該当する情報がありません。


.. module:: TortoiseHg.settings
	:synopsis: TortoiseHg の設定

TortoiseHg
----------

:guilabel:`3-way マージツール:`
	マージ時の衝突を解決するGUI のマージプログラム。指定されなかった場合、Mercurial は
	システムで最初に見つかった内蔵マージツールを衝突マーカを取り除くために使用します。
	強制的に衝突マーカを表示するには :guilabel:`internal:merge` を指定し、
	常に local か other を選択できるようにするには :guilabel:`internal:prompt` を
	指定し、手作業でマージするために作業ディレクトリにファイルを書き出しておくには
	:guilabel:`internal:dump` を指定してください。

:guilabel:`GUI 差分表示ツール:`
	Mercurial 設定ファイルの [merge-tools] セクションに記述されている GUI 差分表示ツールを指定。
	未設定の場合は選択されている 3-way マージツールを使用します。
	3-way マージツールが選択されていない場合は TortoiseHg が利用可能なツールを探して使います。

:guilabel:`差分表示をスキップ:`
	TortoiseHg の GUI 差分表示ダイアログを表示せず、設定されている GUI
	差分表示ツールのディレクトリ比較機能を使います。この機能は GUI 差分表示ツールが
	正しい extdiff 設定を持っている場合のみ有効にしてください。デフォルト：False。

:guilabel:`GUI エディタ:`
	ファイルを表示するための GUI エディタを指定します。

:guilabel:`コマンドラインエディタ:`
	コミット時や Mercurial がユーザから複数行のテキスト入力を必要としている場合に
	使用するエディタです。CLI コマンドにのみ使用されます。
		
:guilabel:`タブ文字の幅:`
	TorroiseHg の各種ダイアログにおいてテキスト中のタブ文字をいくつの空白文字に
	展開するかを指定してください。デフォルト：タブ文字を展開しない。

:guilabel:`最大差分サイズ:`
	チェンジログ・ステータス・コミットダイアログで表示する最大ファイルサイズを
	KB 単位で指定してください。0の場合は無制限となります。デフォルト：1024。

:guilabel:`差分を画面下部に表示:`
	差分表示パネルをステータス・シェルフ・コミットダイアログのファイル一覧の下に配置します。
	デフォルト：False (ファイル一覧の右側に表示)。

:guilabel:`標準エラーの補足:`
	標準エラー出力の実行時エラーを補足して表示します。デフォルト：True。

:guilabel:`ダイアログプロセスの生成:`
	hgtk をコマンドラインから起動したとき、ダイアログ用のバックグラウンドプロセスを
	生成するかどうかを設定します。デフォルト：True。

:guilabel:`絶対パス表示:`
	各種ダイアログのタイトルにリポジトリのディレクトリ名のかわりにフルパスを
	表示します。デフォルト：False。

:guilabel:`スペルチェック言語:`
	スペルチェックに使用するデフォルトの言語を指定します。指定されなかった場合は
	システム既定の言語が使用されます。例：en, en_GB, en_US。
	スペルチェックには gtkspell が必要になるため、 GNOME デスクトップを
	採用している環境でのみ使用可能です。


.. module:: commit.settings
	:synopsis: コミットダイアログに関する設定

コミット
--------

:guilabel:`ユーザ名:`
	コミット時に使用する名前。

:guilabel:`要約行最大文字数:`
	コミットログ最初の行 (要約行) の最大文字数。これが設定された場合、
	要約行が長すぎる、もしくは要約行とそれ以降のログが空行で区切られていないときに
	警告が表示されます。デフォルト：0 (制限しません)。

:guilabel:`コミットログ折り返し文字数:`
	コミットログの折り返し文字数。これが設定された場合、コミットログ中の1行でも
	設定文字数を上回っていると警告が表示され、その文字数で強制的に折り返すための
	ポップアップメニューが表示されます。デフォルト：0 (制限しません)。

:guilabel:`コミット後にプッシュ:`
	True にすることで *コミット後にプッシュ* チェックボックス	の初期値として
	使用されます。デフォルト：False。

:guilabel:`自動コミットリスト:`
	コミットに自動的に含めたいファイルをカンマ区切りで指定します。
	通常はユーザ設定ではなくリポジトリ設定で使用します。デフォルト：指定無し。

:guilabel:`自動除外リスト:`
	ステータス、コミット、シェルフツールにおいて自動的にチェックを外したい
	ファイルをカンマ区切りで指定します。デフォルト：指定無し。


.. module:: changelog.settings
	:synopsis: チェンジログの表示に関する設定

チェンジログ
------------

:guilabel:`コミッタで色分け:`
	コミッタ名でチェンジセットを色分けします。このオプションが無効の場合、
	マージリビジョンは緑、親リビジョンが離れているリビジョンは赤、
	それ以外の通常のリビジョンは黒に色分けされます。デフォルト：False。

:guilabel:`長めの要約行:`
	この設定が有効の場合、最大80文字になるまでコミットログの改行を無視して
	1行として表示します。デフォルト：False。

:guilabel:`ログ読み込み件数:`
	1度の処理で読み込みおよび表示するリビジョンの件数。デフォルト：500。

:guilabel:`削除済みブランチ:`
	リポジトリでブランチ名一覧を作成する際に無視するブランチ名をカンマ区切りで指定。
	デフォルト：指定無し。

:guilabel:`ブランチの色:`
	ブランチ名とその色を "branch:#XXXXXX" の形式で空白文字区切りで指定。
	ブランチ名に含まれる空白文字とコロン(":")はバックスラッシュ("\")で
	エスケープする必要があります。同様に他の文字についても、例えば "\u0040"
	はアットマーク("@")にデコードされ、"\n" は改行になります。
	デフォルト：指定無し。

:guilabel:`非表示タグ:`
	非表示にしたいタグ名を空白区切りで指定。便利な使用例："qbase qparent qtip"
	を設定することで MQ 拡張機能が使用するタグを隠すことができます。
	デフォルト：指定無し。


.. module:: synchronize.settings
	:synopsis: 同期ツールに関する設定

同期
----

:guilabel:`同期` ページではリポジトリに関連するパス (URL やディレクトリパス) を
保存することができます。これらのパスをユーザ設定やユーザ設定ファイルに保存する
ことはあまりなく、多くの場合リポジトリ設定ファイルにのみ保存します。Mercurial には
2つの特別なパス名 (エイリアス) があり、それらはいくつかの Mercurial コマンドで
デフォルトのパスとして使用されます。

* *default*		- プル元のデフォルトのパス。普通はクローンしたときのパス。
* *default-push*	- コマンドラインを使用したときのデフォルトのプッシュ先のパス。

:guilabel:`プル後の処理:`
	プル操作が正常に完了するとそのまま続けて実行されます。
	:guilabel:`update` はコマンドラインの :command:`pull --update`、
	:guilabel:`fetch` は fetch 拡張機能、 :guilabel:`rebase` は
	:command:`pull --rebase` と同等の操作です。デフォルト：なし。

:guilabel:`リモートリポジトリパス`
	このパネルでは頻繁に利用するリポジトリのパスとそのエイリアスを設定できます。
	クローンを実行すると Mercurial は自動的にそのリポジトリを *default* という
	エイリアスで登録します。ここで設定したパスはすべて同期ツールのコンボボックスに
	表示され、コマンドラインから使用する場合でもショートカットとして利用できます。


.. module:: web.settings
	:synopsis: ウェブサーバに関する設定

サーバ
------

:guilabel:`リポジトリ名:`
	ウェブブラウザを使ったリポジトリ表示で使用する名前。
	デフォルト：作業ディレクトリ名。

:guilabel:`説明:`
	リポジトリの目的または内容に関する説明文。

:guilabel:`連絡先:`
	このリポジトリの管理者の名前またはメールアドレス。

:guilabel:`テーマ:`
	使用するテンプレート名。

:guilabel:`アーカイブ形式:`
	ダウンロード可能にするアーカイブ形式をカンマ区切りで指定。

:guilabel:`ポート番号:`
	サーバの待ち受けポート番号。

:guilabel:`SSL プッシュ:`
	パスワード傍受などを防ぐため、プッシュ操作に SSL 通信の使用を必須と
	するかどうか。

:guilabel:`ストライプ:`
	複数行を出力するとき、何行ごとに色を変えるか。
	デフォルト：1 (0でストライプ無効)。

:guilabel:`最大ファイル表示件数:`
	チェンジセットごとに表示するファイルの最大件数。

:guilabel:`最大チェンジセット表示件数:`
	チェンジログ一覧に表示するチェンジセットの最大件数。

:guilabel:`プッシュ許可リスト:`
	リポジトリへのプッシュを許可するかどうか。空欄または未設定の場合、プッシュは許可されません。
	特別な設定値 "*" の場合は認証されてないユーザも含め、誰でもプッシュ可能になります。
	特定のユーザのみ許可したい場合はユーザ名をカンマ区切り (空白文字でも可) で指定してください。
	それによってユーザ認証が必要になります。ここで指定した許可ユーザ一覧は拒否ユーザ一覧の
	後に適用されます。

:guilabel:`プッシュ拒否リスト:`

	リポジトリへのプッシュを拒否するかどうか。空欄または未設定の場合、プッシュは拒否されません。
	特別な設定値 "*" の場合はすべてのユーザがプッシュを拒否されます。特定のユーザのみ拒否したい場合は
	ユーザ名をカンマ区切り (空白文字でも可) で指定してください。ここで指定した拒否ユーザ一覧は
	許可ユーザ一覧の前に適用されます。

:guilabel:`文字エンコーディング:`
	文字エンコーディング名。


.. module:: proxy.settings
	:synopsis: プロキシ設定

プロキシ
--------

:guilabel:`ホスト名:`
	プロキシサーバのホスト名とポート番号。例えば ``myproxy:8000`` など。

:guilabel:`除外ホスト:`
	必要であればプロキシサーバを経由しないホスト名をカンマ区切りで指定。

:guilabel:`ユーザ名:`
	必要であればプロキシサーバ認証用のユーザ名を指定。

:guilabel:`パスワード:`
	必要であればプロキシサーバ認証用のパスワードを指定。


.. module:: email.settings
	:synopsis: メール送信に関する設定

メール送信
----------

:guilabel:`送信者:`
	SMTP の "From" ヘッダに使用する送信元メールアドレス。

:guilabel:`受取人:`
	送信先のメールアドレスをカンマ区切りで指定。

:guilabel:`Cc:`
	CC のメールアドレスをカンマ区切りで指定。

:guilabel:`Bcc:`
	BCC のメールアドレスをカンマ区切りで指定。

:guilabel:`メール送信手段:`
	必要ならメールを送信する手段を指定。デフォルトの "smtp" は SMTP (以下の項目で設定可能)
	を用いてメールを送信します。もしくは sendmail (-f オプションで送信者、引数として受取人一覧、
	メール本文は標準入力) のようなメール送信プログラムを直接指定することもできます。
	通常は ``sendmail`` または ``/usr/sbin/sendmail`` と指定するだけで送信できます。

:guilabel:`SMTP ホスト名:`
	メールサーバのホスト名。

:guilabel:`SMTP ポート番号:`
	メールサーバへの接続ポート番号。デフォルト：25。

:guilabel:`SMTP TLS 設定:`
	TLS を使用してメールサーバに接続します。デフォルト：False。

:guilabel:`SMTP ユーザ名:`
	メールサーバ認証用のユーザ名。

:guilabel:`SMTP パスワード:`
	メールサーバ認証用のパスワード。

:guilabel:`ローカルホスト名:`
	送信者自身をメールサーバに識別させるためのホスト名。


.. module:: diff.settings
	:synopsis: 差分表示に関する設定

差分
----

:guilabel:`パッチ改行文字:`
	パッチファイルの改行文字を LF または CR+LF に正規化します。
	Strict の場合は正規化されません。デフォルト：Strict。

:guilabel:`Git 拡張形式:`
	GIT の拡張差分ヘッダ形式を使用します。デフォルト：False。

:guilabel:`日付を非表示:`
	差分ヘッダに日付情報を付加しないようにします。デフォルト：False。

:guilabel:`関数名の表示:`
	どの関数が変更されたのかを表示。デフォルト：False。
	
:guilabel:`空白文字の無視:`
	行比較の際に空白文字の有無を無視します。デフォルト：False。

:guilabel:`空白文字の数の違いを無視:`
	空白文字の数の違いを無視します。デフォルト：False。

:guilabel:`空行を無視:`
	比較時に空行の有無を無視します。デフォルト：False。

:guilabel:`色付け方法:`
	差分表示の色付け方法を指定。foreground は文字自体に色を付け、background
	は背景色を変更する。none にすることで差分の色付けを無効にできます。
	デフォルト：foreground。


.. module:: font.settings
	:synopsis: フォントに関する設定

フォント設定
------------

:guilabel:`テーマ標準フォント`
	現在の GTK テーマのフォント設定を使用します。

:guilabel:`推奨フォント:`
	各言語・環境向けに最適なフォント設定を選びます。

:guilabel:`個別設定フォント:`
	使用するフォント名およびサイズをその使用目的ごとに個別に設定します。

このグループに含まれるドロップダウンコンボは :guilabel:`個別設定フォント:`
ラジオボタンを選択したときに有効化されます。

:guilabel:`コミットメッセージ:`
	チェンジセットの詳細表示およびコミットダイアログのログ入力エリアで
	使用されるフォント。デフォルトは monospace 10 です。

:guilabel:`差分表示:`
	チェンジセットの詳細表示およびコミットダイアログの差分表示で使用される
	フォント。デフォルトは monospace 10 です。

:guilabel:`ファイル一覧:`
	コミットダイアログのファイル一覧で使用されるフォント。
	デフォルトは sans 9 です。

:guilabel:`コマンド出力:`
	コマンド出力ウィンドウで使用されるフォント。
	デフォルトは monospace 10 です。

今回のリリースで削除された設定項目
==================================

:guilabel:`ハッシュ値のコピー:`
	チェンジログビューアでそのとき選択しているチェンジセットのチェンジセット ID
	をクリップボードにコピーできるようにします。廃止予定。デフォルト：False。

チェンジセットのハッシュ値をクリップボードにコピーするには、
チェンジセットの右クリックメニューから :guilabel:`ハッシュのコピー` を使用してください。


キーボードショートカット
========================

:kbd:`Ctrl-Enter`
	変更を保存してダイアログを閉じます。これは :guilabel:`OK` ボタンを
	押したときと同じ動作になります。


コマンドラインからの実行
========================

設定ダイアログはコマンドラインから起動することもできます。
リポジトリ設定 (:file:`.hg/hgrc` file) の場合は： ::

	hgtk repoconfig

ユーザ設定 (:file:`Mercurial.ini` file) の場合は： ::

	hgtk userconfig

コマンド構文はこのようにシンプルで共通オプションを除けばコマンドラインオプションを
指定する必要ありません。

.. vim: noet ts=4
