彷徨えるフジワラ

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

hg-hack

Mercurial に関するコミュニティ由来の成果(2016年版)

本エントリは、2016年の一年間に、ML/twitter/勉強会といったコミュニティから上がった情報/要望の中で: Mercurial 本体に取り込まれた修正の契機になったもの 『今後の作業のネタ』(= バックログ)として認識されているもの 上記に該当するものを、情報提…

Mercurial に関するコミュニティ由来の成果(2015年版)

本エントリは、2015年の一年間に、ML/twitter/勉強会といったコミュニティから上がった情報/要望の中で: Mercurial 本体に取り込まれた修正の契機になったもの Mercurial 本体に取り込まれてはいないものの、何らかの成果に結びついたもの 『今後の作業のネ…

Mercurial に関するコミュニティ由来の成果(2014年版)

本エントリは、2014年の一年間に、ML/twitter/勉強会といったコミュニティから上がった情報/要望の中で: Mercurial 本体に取り込まれた修正の契機になったもの Mercurial 本体に取り込まれてはいないものの、何らかの成果に結びついたもの 『今後の作業のネ…

コミットログ入力画面カスタマイズ機能実現の顛末

いつもであれば、年末の振り返りで他の修正と一緒に、「利用者から要望のあった○○○○に対処するパッチを投げて、取り込んでもらいました」で終わらせるところなのですが、下準備のために相当量のパッチを投げる必要があったので、備忘録代わりに公開しておき…

Mercurial 開発環境におけるテストセット実行性能の改善

先に結論を書いておきますが、要するに: 利用可能な CPU コア数を増やし、高並列に実施すれば、早く終わる という、至極平凡な話です(笑)。 事の始まり 先日、自分の投函したパッチに関して、マスターリポジトリに変更が取り込まれる寸前に、ちょっとした…

Mercurial に関するコミュニティ由来の成果(2013年版)

本エントリは、2013年の一年間に、ML/twitter/勉強会といったコミュニティから上がった情報/要望の中で: Mercurial 本体に取り込まれた修正の契機になったもの Mercurial 本体に取り込まれてはいないものの、何らかの成果に結びついたもの 『今後の作業のネ…

Mercurialエクステンションで、指定パターンに合致する管理対象ファイルを取得する

このエントリは、Mercurial Advent Calendar 2013 の14日目です。先日、下記のツイートを契機に、Mercurial の内部実装に関する一連のやりとりがありました。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window…

Python Developers Festa 2013.11

Python Developers Festa 2013.11 に参加してきました。主催の id:Voluntas 氏を初めとする、運営スタッフの皆様、お疲れ様でした。今回は、拙著「lsを読まずにプログラマを名乗るな!」が発売された際に: window.twttr = (function(d, s, id) { var js, fjs…

Mercurial の osutil.listdir() における "skip" の位置付け

完全に内部実装固有の話なので、備忘録以上の意味は無いエントリです(笑)。Mercurial の実装では、ディレクトリ配下の要素一覧と各要素の stat(2) 情報を一括で取得する機能として、要素一覧しか取得できない Python 標準の os.listdir() とは別に、独自の…

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

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

Mercurial に関するコミュニティ由来の成果(2012年版)

本エントリは、2012年の一年間に、ML/twitter/勉強会といったコミュニティから上がった情報/要望の中で: Mercurial 本体に取り込まれた修正の契機になったもの Mercurial 本体に取り込まれてはいないものの、何らかの成果に結びついたもの 『今後の作業のネ…

『ファイルの最終更新日一覧取得』を最適化してみる

※ 2012/10/11 追記ありPython から Mercurial を使うエントリがあったので、Mercurial ハッカーの増加を願って、Mercurial の内部機能の使い方について、補足説明してみることに。以下の実装で使用しているオブジェクトの詳細等に関しては、適宜『How to wri…

"internal:patch" 実装経緯のメモ

『*.rej ファイル生成』形式のマージの実装過程で得た知見のまとめ。※ Bitbucket 上で hgext-mergebypatch として公開してます"mdiff.unidiff()" と "patch.internalpatch()" の組み合わせで、とりあえずは所望の機能が実現出来ることを確認出来たのだが、案…

『*.rej ファイル生成』形式のマージ

色々ドタバタしたせいで、またまた間隔があいてしまったけれど、TokyoMercurial #1 で話題になった件の詳細シリーズ - その6。ちなみに、結構長いです。あと、python コードもバンバン出てきます。でも Mercurial の用法に関しては全然出てきません(笑)。事…

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

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

リビジョン指定+ファイル名指定での hg log 挙動の障害

久々に Mercurial ネタ。とは言いつつも、事の発端となったリポジトリが onnv-gate なので、Solaris ネタでもあったりする。ちょいと必要性があって、ビルド 79 と 111 の間でヘッダファイル vnode.h や vfs.h に適用された変更内容を確認することに。リビジ…

Python におけるクラス定義の遅延

例によって英語力がアレなので、購読しつつもそれほどちゃんと読んでいるわけではないMercurial 開発者向け ML なのだけど、ある日つらとらと眺めていると、他の人のメールなのに、何故か自分の名前を見かけた気が.....そんな筈ないよねぇ?と思いつつ、念の…

空白詰めと符号化方式

CP932 (Shift-JIS ね) に関するバグを滑り込みで直すことができて、やれやれ危ういところだった、とホッとしながら、Mercurial 1.6 版を仕事で使っている環境に入れて help 出力を確認してみたら....: -A --addremove コミット前に、新規/不在ファイルを登…

滑り込みで文字化けの修正

Mercurial の主要なコマンド/エクステンション/ヘルプトピックのメッセージを概ね翻訳し終えた。今回のリリースでは、新機能としてリビジョン指定言語("hg help revsets")が追加された他に、用語集("hg help glossary")も追加されているため、段落分割で共…

MBCS 文字列の折り返し - 最終回

修正方法等でリテイクがあったけど、無事本家のリポジトリに取り込まれたので一安心。TextWrap の派生クラスから更で実装するような状況だったら、途中でうんざりしてたかも(笑)。大変助かりました > 伊藤さんさて、7月頭のリリースに向けて、もう一つのパ…

MBCS 文字列の折り返し - その 3

Mercurial のヘルプ表示に関しては、まずは「文字化けを無くす」ことが優先なのだけど、Python 標準の textwrap を使う限りでは(少なくとも日本語は)綺麗な行折り返しは実現できそうにないから、いずれは独自の行折り返し実装が必要になる感じ。標準 textwra…

MBCS 文字列の折り返し - その 2

文字の表示桁取得処理に関して気になることが。dayflower 氏の実装では、unicodedata.east_asian_width() の戻り値が F/W/A のいずれかなら 2 桁とみなしているけど、Mercurial の colwidth()@encoding.pyでは F/W の場合だけ 2 桁とみなしている。ふーむ、…

MBCS 文字列の折り返し - その 1

Mercurial の 1.4 版から、端末表示幅にあわせてヘルプテキストが折り返されるようになったのだけど、案の定というか、言語設定を日本語にしてある(LANGUAGE=ja 等)場合、折り返された行末で表示が乱れるケースがちらほらと。ぱっと見、複数バイトで構成され…

"hg log" にファイル名を指定するなら "-k" で

忙しい人は以下のことだけ覚えれば大丈夫(複数指定に関する条件を追加@2010/05/03)。 特定ファイルに関する全履歴を見たい場合は、"hg log filename" ではなく "hg log -k filename" を使うこと。但し、ファイル/ディレクトリの複数指定が必要な場合は、1.…