Mercurial 1.8: 名前付きブランチの fast-forward マージ

2011 年 2 月 5 日 はてなブックマークへ追加 はてなブックマーク - Mercurial 1.8: 名前付きブランチの fast-forward マージ Bookmark this on Delicious

2011-03-12 追記: Mercurial 1.8.1 で元の挙動に戻りました

この状態で stable とマージすると:

o  1 tip  stable d22578dc6cbe 2011-02-05 17:26 +0900 yuya@tcha.org
|    add bar
|
@  0 8e8497c544c1 2011-02-05 17:25 +0900 yuya@tcha.org
     add foo

Mercurial 1.7.5 まで (と 1.8.1 以降):

yuya /tmp/repo hg:0:8e8497c544c1/default
% hg merge stable
ファイル状態: 更新数 1、 マージ数 0、 削除数 0、 衝突未解決数 0
(マージ結果の commit を忘れずに)

yuya /tmp/repo hg:0:8e8497c544c1,1:d22578dc6cbe[tip]/default
% hg ci -m 'merge with stable'

yuya /tmp/repo hg:2:977f0fda89b9[tip]/default
% hg glog
@    2 tip :0,1 977f0fda89b9 2011-02-05 17:48 +0900 yuya@tcha.org
|\     merge with stable
| |
| o  1 stable d22578dc6cbe 2011-02-05 17:26 +0900 yuya@tcha.org
|/     add bar
|
o  0 8e8497c544c1 2011-02-05 17:25 +0900 yuya@tcha.org
     add foo

Mercurial 1.8 (2011 年 3 月リリース) のみ:

yuya /tmp/repo hg:0:8e8497c544c1/default
% hg merge stable
ファイル状態: 更新数 1、 マージ数 0、 削除数 0、 衝突未解決数 0
(マージ結果の commit を忘れずに)

yuya /tmp/repo hg:1:d22578dc6cbe[tip]/default
% hg ci -m 'merge with stable'
新規ヘッドが増えました

yuya /tmp/repo hg:2:dd9675ad136d[tip]/default
% hg glog
@  2 tip  dd9675ad136d 2011-02-05 17:50 +0900 yuya@tcha.org
|    merge with stable
|
o  1 stable d22578dc6cbe 2011-02-05 17:26 +0900 yuya@tcha.org
|    add bar
|
o  0 8e8497c544c1 2011-02-05 17:25 +0900 yuya@tcha.org
     add foo

名前付きブランチがコミットラベルだ ってことを思い出せば、この挙動が正しいことは分かる。 分かるんだけど、ちょっと直感に反するな。バグかと思ったよ…。

詳しくはこの修正を: http://selenic.com/repo/hg/changeset/9e7e24052745

コメント

blog comments powered by Disqus