Changeset a892e333b52d…
Parent 833df353f725…
by
Changes to 2 files · Browse files at a892e333b52d Showing diff from parent 833df353f725 Diff from another changeset...
|
|
|
@@ -0,0 +1,126 @@ + ******
+パッチ
+******
+
+.. module:: patches
+ :synopsis: パッチの取り扱いについて
+
+パッチとは
+==========
+
+These links are recommended reading for understanding the history and nature
+of patches and how they can be used with Mercurial.
+
+以下のリンクはパッチの本質と歴史を理解し、Mercurial
+ではどのように使われているのかを理解するのによい資料です。
+
+* `パッチ管理問題 <http://tortoisehg.bitbucket.org/hgbook/1.4/managing-change-with-mercurial-queues.html#sec:mq:patch-mgmt>`_
+* `パッチを理解する <http://tortoisehg.bitbucket.org/hgbook/1.4/managing-change-with-mercurial-queues.html#sec:mq:patch>`_
+* `さらにパッチについて <http://tortoisehg.bitbucket.org/hgbook/1.4/managing-change-with-mercurial-queues.html#sec:mq:adv-patch>`_
+
+落とし穴
+========
+
+標準的なパッチ形式はバイナリファイルや名前変更、コピー、パーミッションの変更を記述できません。
+そのためまず **GIT** 形式のパッチを有効にする必要があります: ::
+
+ [diff]
+ git=True
+
+Mercurial 1.5 ではこの振る舞いが改善され、GIT 形式の差分が必要な場合は
+ユーザに警告を出すか、自動的に GIT 形式に変更します。詳しくは
+`差分 <http://www.selenic.com/mercurial/hgrc.5.html#diff>`_
+のページを参照してください。
+
+Mercurial のパッチ処理は改行文字に一貫性のないソースファイルとパッチを
+うまく取り扱うことができないため、その解決方法として **patch.eol**
+設定がバージョン 1.3 で導入されました: ::
+ [patch]
+ eol = auto #strict, lf, or crlf
+
+hgeol 拡張機能もこの領域の問題の改善に取り組んでいます。
+おそらく Mercurial 1.5 で解決します。詳しくは
+`パッチ <http://www.selenic.com/mercurial/hgrc.5.html#patch>`_
+のページを参照してください。
+
+実のところパッチの適用というのはそれほど簡単な作業ではありません。
+もしソースファイルがパッチ作成時から枝分かれしてしまっていたら、
+パッチ適用時に衝突が起こり、.rej という拡張子のファイルが生成されます。
+現時点では破棄された変更点はユーザが手動で解決しなければなりません。
+
+
+パッチのエクスポート
+====================
+
+チェンジセット
+--------------
+
+チェンジセットをパッチとして保存するには、チェンジログビューアで
+チェンジセットの右クリックメニューから
+:menuselection:`エクスポート --> パッチの作成` を選択してください。
+ファイル保存ダイアログが表示されます。
+
+リビジョン範囲
+--------------
+
+チェンジログビューアでリビジョンの範囲を選択してください。
+始点 (base) となるチェンジセットを左クリックで選択し、次に終点 (target)
+のチェンジセットの上で右クリックすると、このリビジョン範囲に対するコマンドを含んだ
+右クリックメニューが表示され、パッチの生成・バンドルの保存、メール送信、そして
+選択範囲のチェンジセットの変更点を積み重ねた差分を見ることができます。
+
+始点と終点の選択には制限がないため、この操作は非常に強力な機能です。
+
+メール送信
+----------
+
+単独のチェンジセットを送るにはチェンジログビューアで
+チェンジセットの右クリックメニューを使用してください:
+:menuselection:`エクスポート --> メールで送信...` 。
+選択するとメール送信ダイアログが開きます。
+
+リビジョン範囲をまとめて送る場合はリビジョン範囲の右クリックメニューから
+:menuselection:`この範囲をメールで送信...`
+を選択してください。
+
+最後に、選択中のリモートリポジトリに全てのチェンジセットを送るために同期ツールバーの
+:guilabel:`メール送信` ボタンを使うこともできます。
+
+.. note::
+ パッチをメールで送信するには事前に
+ `SMTP <http://www.selenic.com/mercurial/hgrc.5.html#smtp>`_
+ の設定が必要です。
+
+チェンジセットのつまみ食い
+--------------------------
+
+チェンジログビューアでリビジョン範囲の右クリックメニューの
+:menuselection:`選択中のリビジョンとの差分`
+を使用してください。始点から終点までの全てのリビジョンにおける変更点を
+積み重ねた差分がステータスダイアログに表示されます。
+
+ステータスダイアログではコミットツールと同じようにファイルおよびハンク選択機能を
+使うことができ、最終的な結果は :guilabel:`プレビュー` タブで見ることができます。
+:guilabel:`名前を付けて保存` ボタンを押せば選択されている変更点をパッチファイルとして保存できます。
+
+より手軽な方法としてはハンク選択画面で必要なハンクをハイライト (選択ではない)
+してから CTRL-C すればクリップボードに差分をコピーできます。
+
+.. note::
+ 選択する順番を逆にすると、生成されるパッチの順番も逆になります。
+
+
+パッチのインポート
+==================
+
+インポートダイアログ
+落とし穴: 作業ツリーがクリーンであるという前提
+落とし穴: パッチにヘッダがない場合、エディタが起動される
+
+
+MQ (パッチキュー)
+=================
+
+MQ パネルがチェンジログビューアとコミットツールにあります。
+
+.. vim: noet ts=4
|
Loading...