彷徨えるフジワラ

年がら年中さまよってます

hg-revsets

テンプレート関数 revset() の利用

hg log で特定のファイルの履歴を取る時に そのファイルの変更リビジョンから次の変更の直前までにあるすべてのタグを同時に取得する方法は何かないですかねえ? #mercurialjp— Kaz Nishimura (@kazssym) 2014, 8月 8上記ツイートを契機としたやり取りの過程…

複数ルートなブランチの全ての差分の取得

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

ファイルを登録除外したリビジョンの検出

本エントリも、備忘録代わりに「お気に入り」に入れてあったツィートの棚卸しシリーズの一部です(笑)※ 本文中では revsets 述語の removes() に関して説明していますが、adds() や modifies() でも似たような現象が発生しますので、可能であれば filelog()…

(利用状況次第では) Mercurial 2.5 版以上の利用を推奨

簡単にまとめると: リビジョンセット記述(特に "or"/"|"/"+" 結合)を多用する場合は、評価結果が間違っている可能性があるため、Mercurial バージョン2.5以上の利用を推奨 最新の情報に関しては、こちらのエントリを参照してください。以下、事の顛末に関す…

(利用状況次第では) Mercurial 2.3 版利用の回避を推奨

簡単にまとめると: リビジョン指定に revsets 表記を多様する人は、想定外の挙動が発生する可能性があるので、Mercurial 2.3 版の利用は回避することを推奨 最新の情報に関しては、こちらのエントリを参照のこと。以下、詳細というか、障害要因調査の顛末。…

名前付きブランチ全体の差分取得と revset 利用

revset 機能が導入される以前であれば: 名前付きブランチにおける、分岐時点から最新までの総差分 みたいなものを参照しようとした場合: "hg log -b ブランチ名 --template '{rev}\n'| tail -n 1" などで、最初の分岐リビジョン(BRANCHING)を取得 "hg parent…

TortoiseHg 利用者は revset 指定を積極的に活用すべき

まぁ、僕自身が去年の年末まで、revset は殆ど使っていなかったので、あまり偉そうなことは言えた身分ではないのだけれど(笑)。TortoiseHg で『リビジョンセットやブランチで履歴をフィルター』ボタンを押すと、条件入力欄(『### revision set query ###』)…

revset の "remote()" に振り回される

Mercurial の 2.1 版リリースに向けてメッセージ翻訳をしていて、revset の "remote()" の仕様が良く分からなかったので、動作確認してみたら、どうもバグを見つけたみたいだったので、急遽修正パッチ&確認テストの作成をすることに。今日も『TokyoMercuria…

リビジョン番号/ハッシュIDと紛らわしいブランチ名の使用

本家の user-ml に以下のような投函が: ブランチ名を数値にしたいんだけど、ブランチ名指定がリビジョン番号指定に誤解されないようにするにはどーしたらいーの?(意訳) Matt 曰く: 対象リビジョンのログを見るような場合は "hg log -r 'branch(111)'" ブラ…