2012-05-15
名前付きブランチ全体の差分取得と revset 利用
revset 機能が導入される以前であれば:
名前付きブランチにおける、分岐時点から最新までの総差分
みたいなものを参照しようとした場合:
- "
hg log -b ブランチ名 --template '{rev}\n'| tail -n 1" などで、最初の分岐リビジョン(BRANCHING)を取得 - "
hg parents BRANCHING" で分岐リビジョンの親リビジョン(BASE)を取得 - "
hg diff -r BASE -r ブランチ名" で差分を取得
といった手順が必要だったので、自分の書籍では:
名前付きブランチの作成の際には、分岐元リビジョンへのタグ付けを、ブランチの最初のリビジョンにするのがお勧め
としてあるのだけれど、revset を使えば:
- 当該ブランチのリビジョン: "
branch(ブランチ名)" - 且つリビジョン番号が最小(= 分岐リビジョン): "
min(branch(ブランチ名))" - 且つ第1親: "
min(branch(ブランチ名)) ^ 1"
という記述で分岐元リビジョンが導出できるので、以下のコマンド実行で差分が取得できる。
$ hg diff -r "min(branch(ブランチ名)) ^ 1" -r ブランチ名
とはいえ、内部的には高速化に関する配慮が色々とされているけれど、revset での絞り込みは決して安価な処理ではないので、履歴が膨大な場合には当然実行性能的な問題が生じ得る: 例えば『当該ブランチの最小リビジョン』導出は、履歴の全走査が必要。
まぁ、今時の個人が使用する端末の性能を考えると、先のエントリで書いたように『この程度の記述差で、目に見えて実行効率が低下することも無い』筈ではあるのだけれど、そういった状況への配慮が必要な場合であれば、『分岐元リビジョンへのタグ付け』は依然として有効な筈。
トラックバック - http://d.hatena.ne.jp/flying-foozy/20120515/1337085869
リンク元
- 17 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CGUQFjAE&url=http://d.hatena.ne.jp/flying-foozy/20120515/1337085869&ei=DDboT_C1N6GDmQX2raTyCg&usg=AFQjCNFNdJ0oRAQUyJNwMfRWd6vh9OQP3g
- 11 https://www.google.co.jp/
- 6 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CF0QFjAB&url=http://d.hatena.ne.jp/flying-foozy/20120515/1337085869&ei=eC28T-S-E6PFmQXxidk2&usg=AFQjCNFNdJ0oRAQUyJNwMfRWd6vh9OQP3g&sig2=n5y9L2ClNznjOFBlhTR-bA
- 6 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CF4QFjAC&url=http://d.hatena.ne.jp/flying-foozy/20120515/1337085869&ei=t7TJT4WMHI3GmQWvho38Dg&usg=AFQjCNFNdJ0oRAQUyJNwMfRWd6vh9OQP3g
- 5 http://discypus.jp/wiki/?ソフト/Bug Tracking/trac/2012
- 5 http://reader.livedoor.com/reader/
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CE0QFjAA&url=http://d.hatena.ne.jp/flying-foozy/20120515/1337085869&ei=lVkjUOeLJrHimAXcmYHoCQ&usg=AFQjCNFNdJ0oRAQUyJNwMfRWd6vh9OQP3g&sig2=9flyvIbGP57jbbD7GTQiMA&kb=1
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CGMQFjAD&url=http://d.hatena.ne.jp/flying-foozy/20120515/1337085869&ei=XAG-T7-yBNGVmQW5wpkw&usg=AFQjCNFNdJ0oRAQUyJNwMfRWd6vh9OQP3g
- 3 http://www.askapache.com/
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=差分 ブランチ&source=web&cd=2&ved=0CFkQFjAB&url=http://d.hatena.ne.jp/flying-foozy/20120515/1337085869&ei=Uj-8T_i3Gav5mAXSw7RQ&usg=AFQjCNFNdJ0oRAQUyJNwM
