藤原です。
済みません。確認が不十分なため、間違った情報を書いてました…orz
2013年8月2日金曜日 17時09分38秒 UTC+9 FUJIWARA Katsunori:
> リリースノートには掲載されていませんが、graft histedit rebase
> transplant の各履歴移植系処理は、マージ衝突による中断が発生した場
> 合の挙動が以下のように統一されました。
>
> 1. "hg update" の実施により、中断状態をクリア
> (histedit や rebase の --abort 相当)
>
> 2. commit を実施しようとした場合、『未完了の処理がある』旨のエ
> ラー表示で終了("hg update" への誘導)
> 今書いていて思ったのですが、add/remove/rename の際も、警告
> ぐらいは表示した方が良いのかな? > 未完了処理
断続的に処理を実施されるコマンド(+ update) が、未完了の場合におけ
る、update/commit の挙動は以下のようになります。
# 固定幅フォントで読んでください (^ ^;;;)
未完了の処理 commit update(状態クリア)
graft 禁止 許可 ※ --abort 無し
transplant 禁止 許可 ※ --abort 無し
rebase 禁止 禁止 ※ --abort 有り
histedit 許可 禁止 ※ edit 時向けに commit 許可
update 禁止 許可 ※ update が途中で失敗したケース
『禁止』挙動を実施した場合、処理が中断され、エラーメッセージ
(+その後の対処のヒント)が表示されます。
graft/rebase/transplant はあくまで履歴『移植』なので、マージ衝突の
解消は許されても、独自リビジョンの追加につながる commit は禁止され
ています。
その中で、rebase だけが update 禁止なのは、--abort オプションの有
無/操作の統一性/互換性を考えた上での判断なのかな?
# 後で過去ログを漁ってみます…
histedit は、リビジョン内容改変の必要性があるので、commit が許可さ
れていますが、想定外のリビジョンに飛ばれる(=作業領域に対する状態
仮定が崩れる)事態を防ぐために、update が禁止されています。
『update 失敗時の commit 禁止』は、不完全な update に対する
commit の禁止ですね。
以上、2.7 版の挙動に関する訂正情報でした。