同期ツール
==========

.. module:: synchronize.dialog
	:synopsis: 他のリポジトリとの同期作業に使用するダイアログ

.. figure:: figures/synchronize.png
	:alt: 同期ダイアログ

	同期ダイアログ

.. note::
	同期ツールはバージョン 0.9 において廃止予定となり、以降のリリースで削除されます。
	そのため同期操作はチェンジログビューアで行うことを推奨しています。

同期ツールはリポジトリ間でチェンジセットを転送したり、メールを送信するのに使います。

	:guilabel:`受信`
		指定したリポジトリからプルされるチェンジセットを表示します。
		それらはローカルのリポジトリにはなく、指定したリポジトリにあるチェンジセットです。
	:guilabel:`プル`
		チェンジセットを指定したリポジトリからプルします
	:guilabel:`送信`
		指定したリポジトリにプッシュするチェンジセットを表示します。
		それらはローカルにあって、指定したリポジトリにはないチェンジセットです。
	:guilabel:`プッシュ`
		チェンジセットを指定したリポジトリにプッシュします。その結果、
		ローカルにおける *tip* リビジョンが指定したリポジトリの新しい
		*tip* リビジョンになります。
	:guilabel:`メール送信`
		指定したリポジトリへのチェンジセットをメールで送信します
	:guilabel:`シェルフ`
		いくつかの同期操作は作業ディレクトリがクリーンであることを前提として
		いるため、シェルフツールを起動して作業ディレクトリにおける変更点を
		一時的にシェルフに退避します。
	:guilabel:`中止`
		現在の操作を中止します
	:guilabel:`設定`
		リポジトリパス (とそのエイリアス) の設定ダイアログを開きます

ツールバーの下のボタンはそれぞれ：

	:guilabel:`リポジトリ:`
		同期に使用するローカルリポジトリを指定します
	:guilabel:`バンドル:`
		プルの対象となるローカルのバンドルファイルを指定します

その隣のコンボボックスには同期の対象となるリポジトリのパスを入力または選択します。
ドロップダウンリストにはこのリポジトリに設定されているパスのエイリアスが表示されます。

:guilabel:`プル後の処理` のフレームにはプル操作が完了した後に実行する処理を選択する
ラジオボタンがあります。この動作はツールバーの :guilabel:`設定` ボタンから変更可能です。
ユーザ設定を上書きすることでリポジトリごとにデフォルトの動作を設定できます。

	:guilabel:`なし`
		プル後に何もしません。下のログパネルでプルされたチェンジセットを確認できます。
		*tip* リビジョンに更新するためのボタンが表示されることもあります。
	:guilabel:`更新`
		ローカルリポジトリに新しいリビジョンがプルされた場合に自動的にブランチの *tip*
		リビジョンに更新します。これによってプルした変更とローカルのまだコミットされていない
		変更が衝突した場合にマージが発生する可能性があります。
	:guilabel:`取得`
		:command:`hg fetch` と同じ操作になります。動作の詳細については fetch 拡張機能の
		ヘルプを参照してください。この機能は fetch 拡張機能がユーザによって有効化されて
		いるときのみ表示されます。
	:guilabel:`リベース`
		:command:`hg pull --rebase` と同じ操作になります。動作の詳細については
		rebase 拡張機能のヘルプを参照してください。この機能は rebase 拡張機能が
		ユーザによって有効化されているときのみ表示されます。

:guilabel:`プロキシサーバを使用する` チェックボックスは同期操作ごとに
プロキシサーバの設定を無効化するのに便利です。
このボタンはプロキシ設定がされている場合にのみ有効になります。

すべての同期操作はユーザからの入力を促すダイアログによる認証を必要とします。
TortoiseHg は *ssh:* 接続とその認証のために TortoisePlink ツール (TortoiseSVN からの提供)
を使用します。SSH サーバへの接続に問題がある場合は :doc:`faq` を参考にしてみてください。

折り畳める :guilabel:`詳細設定` パネルにはプル・プッシュ操作に関連した設定が
いくつか用意されています：

	:guilabel:`強制的にプッシュ/プルする`
		無関係なリポジトリまたは複数のヘッドがあるなどの警告を無視して実行します
	:guilabel:`対象リビジョン`
		すべてのリビジョンを送らないようにします
	:guilabel:`リモートコマンド`
		-e オプションを使います
	:guilabel:`パッチの表示`
		チェンジセット送受信時の差分を表示します
	:guilabel:`最新のものを最初に表示`
		チェンジセットを逆順に表示します
	:guilabel:`マージリビジョン以外を表示`
		結果表示からマージリビジョンを除外します (プッシュ・プル操作に影響はありません)


プルした後
----------

チェンジセットがローカルのリポジトリにプルされた後、ダイアログの下部にボタンが表示されます：

	:guilabel:`tip リビジョンに更新`
		作業ディレクトリを現在のブランチの tip リビジョンに更新します

ボタンは使用可能なときにのみ表示されます。


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

.. figure:: figures//email.png
	:alt: メールダイアログ

	メールダイアログ

メールダイアログは2つの TortoiseHg ツールから起動できます。

1)	チェンジログビューア： 単一または複数リビジョンをメールで送信したい場合。

2)	同期ツール： 指定したリポジトリに送信可能なすべてのチェンジセットをメールで送信したい場合
	(メールダイアログを起動する前に :guilabel:`送信` ボタンでどのチェンジセットが送信対象に
	なるのかを確認するのはよい習慣です)。

:guilabel:`送信` ボタンはそのままで、 :guilabel:`設定` ボタンを押すと TortoiseHg
の設定ダイアログにある :guilabel:`メール送信` ページを開きます。そこでは
SMTP 設定や :guilabel:`To:` アドレスと :guilabel:`From:`
アドレスのデフォルトを指定することができます。

:guilabel:`In-Reply-To:` は送信するパッチがメーリングリストで確実にスレッド
として認識されるために使われます。

プレーンパッチ、Mercurial パッチ、GIT パッチ、バンドルの違いについては
Mercurial のマニュアルを参照してください。


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

同期ツールはコマンドラインから起動することもできます： ::

	hgtk synch

	aliases: pull, push, incoming, outgoing, email

	repository synchronization tool

	use "hgtk -v help synch" to show global options

コマンド構文は共通オプションを除けばオプションや引数を必要としないため
シンプルになっています。 :command:`push` 、 :command:`outgoing` 、 :command:`email`
のエイリアスで同期ツールを起動した場合、自動的に *default-push* URL が選択されます。
それ以外のエイリアスの場合は *default* URL が選択されます。
選択された URL が見つからない場合は最初に見つかったパスが使用されます。

.. vim: noet ts=4
