藤原です。
重要障害修正のための緊急リリースとして Mercurial 3.2.1 が公開され
ました。
今回のリリースにおける修正のメインは、discovery (push/pull 等での
履歴差分検出)、rebase およびブックマークに関する以下の修正です。
- bookmarks: fix formatting of exchange message (issue4439)
表示用メッセージのフォーマット処理の不具合による異常終了を回避す
るための修正です。
- discovery: indices between sample and yesno must match (issue4438)
- discovery: limit 'all local heads known remotely' to real 'all' (issue4438)
構造的ヘッドが大量にあるケースで、連携先との履歴差分検出が正しく
機能しない障害の修正です。
未マージな大量のヘッドを維持する運用を行っているケースでは、この
障害が発生する可能性があります。
- rebase: fix rebase with no common ancestors (issue4446)
rebase 元と rebase 先に共通の祖先が存在しない場合に、例外終了し
てしまう障害の修正です。
通常の利用ケースでは「共通の祖先が存在しない」ことが無いので、影
響度としては、それほど高くない筈。
障害修正として既に取り込まれていた以下の修正も、一緒に公開されてい
ます。
- changegroup: don't store unused value on fnodes (issue4443)
不要データのキャッシュによるメモリ浪費の修正です。
- convert: use git diff-tree -Cn% instead of --find-copies=n% for older git
Mercurial 3.2 から、git の複製判定にデフォルトで --find-copies
オプションを使用するようになったのですが、このオプションは git
1.7.4 から追加されたものなので、それよりも古い git コマンドを使
用する場合は、別途明示的な設定変更が必要でした。
詳細は 3.2 のリリース詳細を参照してください。
この修正は、--find-copies の代わりに、古い版の git でも提供され
ていた -C オプションを使うようにするものです。
- extdiff: quote user-supplied options passed to shell
extdiff 使用時に、コマンドラインから空白文字等を含む引数の指定が、
適切に機能しない問題の修正です(内部処理で引用符で囲むようになり
ます)。
- hgweb: fix a crash when using web.archivesubrepos
"[web] archivesubrepos" (アーカイブ作成時に subrepo を含める) 設
定が有効になっている場合に、ウェブ経由のアクセスが正しく機能しな
い障害の修正です。
- mail: actually use the verifycert config value
"[stmp] verifycert" (STARTTLS/SMTPS 接続での証明書検証) 設定が、
false の場合も証明書検証が実施されてしまう障害の修正です。
- serve: correct meta variable of --daemon-pipefds option
"hg serve" のオンラインヘルプにおける --daemon-pipefds オプショ
ンの引数値表示の間違いに対する修正です。
- templater: don't overwrite the keyword mapping in runsymbol() (issue4362)
テンプレート中で、extras や file_copies, file_copies_switch に対
して、マップ機能 ("{extras % 'extra: {extra}'}") を使用した場合
に、フォーマット中の要素展開が上手く機能しない障害の修正です。
テンプレートにおける「マップ機能」の詳細は、以下のブログエントリ
を参照してみてください(現状のオンラインヘルプでは、あまり詳しい
説明をしていません)