彷徨えるフジワラ

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

mercurial

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

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

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

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

ファイル内容をマージしないマージ

Mercurial 2.1 リリース絡みのドタバタで間があいてしまったけれど、TokyoMercurial #1 で話題になった件の詳細シリーズ - その5。"hg merge" でリビジョンの枝分かれをマージする際に、一般的な設定であれば、いわゆる『3-way マージ』と呼ばれる方法で、…

MQ におけるフェーズ機構

Mercurial 2.1 版から導入されたフェーズ機構は、『必要が無ければ、特に意識する必要が無い』類のもの。でも、折角なので、一番手っ取り早くフェーズ機構の恩恵を受けるであろう MQ との併用モデルについて説明する。以下の説明は、フェーズ機構の概要に関…

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

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

中間リビジョンの事後導入

※ Emacs の shell バッファ上における "hg qrefresh -i" 実行に関して追記@2012/02/08 TokyoMercurial #1 で話題になった件の詳細シリーズ - その4。TokyoMercurial #1 当日に、参加者から以下のような質問が: MQ を使って修正作業を行う際に、想定以上に…

series ファイルを直接編集せずにパッチ適用を制御

TokyoMercurial #1 で話題になった件の詳細シリーズ - その3。MQ で管理しているパッチが複数ある場合、適用順序を入れ替えたり、適用の要否を制御したくなったりすることが多々ある。純粋に適用順序を入れ替えたい場合、僕なら脊椎反射的に .hg/patches/se…

逆向きパッチの生成

※ "hg diff" の --reverse オプションに関する記述を追加@ 2012/02/08 ※ Windows のコマンドプロンプトで revset 記述を使用する際の注意事項に関する追記あり@2012/02/06 TokyoMercurial #1 で話題になった件の詳細シリーズ - その2。コミット済み履歴に…

"hg rollback" のガード機能

TokyoMercurial #1 で話題になった件の詳細シリーズ - その1。ちなみに、TokyoMercurial #1 開催日の 01/14 から随分時間が経っているのは、決して忘れていたとかではなく、なんとか 2.1 版リリースに間に合わせようと case insensitive filesystem 対応の…

Mercurial の文字コード設定説明ページを更新した

TokyoMercurial #1 参加の際に気になったトピックについて、詳細を書こうとおもったのだが、そういえば『日本語の取り扱いってどうなってるんでしょう?』という質問があったなぁ、と思い出した。職場とかでの導入/普及の際に、やっぱり日本語の取り扱いの…

TokyoMercurial #1

TokyoMercurial #1 に参加してきた。# 公式ページは bitbucket 上に開催/運営お疲れ様でした! > id:troterとりあえず、現時点で思い付く範囲で Keep/Problem/Try をまとめてみた。 Keep ホワイトボードが使い放題なのは良かった。Wi-Fi/電源等のインフラ…

the inside of largefiles extension

最新の情報に関しては、オンラインヘルプ "hg help largefiles"(ウェブからも参照可能)を参照してください。large 扱いのファイルの取得方法/契機周りが色々改善されています。このエントリは、Mercurial Advent Calendar 2011 の 19 日目です。Mercurial…

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

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

Mercurial の文字コード設定

※ 2012年までの「追記」の表示を破棄/IntelliJ IDEA に関する注記を追加(@2013-12-30)このエントリは、Mercurial Advent Calendar 2011 の 15 日目です。相変わらず話が長くなってしまって御免なさい .... orz追記でではありますが、一応『ここまで読め…

cygwin 環境での case insensitive 性

※ 2011/12/12 追記分ありMercurial の case insensitive なファイルシステム上での cp932 符号化に関する挙動を正すパッチをアレコレ始めたら、一言に case insensitive と言っても、ファイルシステム毎に色々な癖と言うか固有挙動があるために、単に各種文…

Mercurial での改行コード

※ NATIVE 設定周りと、.hgeol 設定反映契機に関する記述を改善しました@2013-12-22このエントリは、Mercurial Advent Calendar 2011 の5日目です。Windows/Unix/Linux/Mac OS などなど、複数の環境における作業成果を、共有リポジトリ等を用いて共有する場…

Mac mini の環境整備

Mercurial の日本語対応に関して、文字大小を認識しないファイルシステム上での不具合を修正するために投げた僕のパッチに、cp932 (いわゆる SJIS ね) なファイル名を使用するテストが含まれていたのだが、どうやら非日本語環境な Windows では期待通りに動…

SCMBootCamp in Tokyo 2 を振り返って

※ 2011/11/27 追記あり 時間枠中は、Twitter のタイムラインを見ている暇が無かったので、togetter でのまとめを元に、落穂拾い的に tweet された質問/疑問に答えることに。まとめて頂いた @shinyaa31( id:absj31 ) 氏に感謝!(※ @shinyaa31氏自身のまとめ…

SCMBootCamp in Tokyo 2

"SCMBootCamp in Tokyo 2" に参加してきた。東京 OpenSolaris 勉強会 2011.07 に参加した際に、同日開催されていた SCMBootCamp in Tokyo に顔を出したのが縁で、今回は「基調講演」&「演習アシスタント」として参加することに。基調講演では、"『分散リポ…

largefiles エクステンション漬けの日々

Mercurial 2.0 から largefile エクステンションが正式に同梱配布されるようになった。Mercurial では、基本「ファイルの差分」を格納しているのだけれど、「差分」という形式上、バイナリファイルの格納はあまり効率的ではない。とは言っても、「すっげー無…

リリース間際の滑り込み修正

Mercurial 2.0 版のリリース直前になって、日本語設定 ("export LANG=ja") 時にコマンドのオンラインヘルプを表示させると、成功するケースと失敗するケースがあることが判明。リリース予定がアメリカ時間の 11/01 なのに、判明したのが日本時間の 10/31 の…

東京 OpenSolaris 勉強会 2011.07 + SCM Bootcamp

今日は、東京 OpenSolaris 勉強会 2011.07 に参加するために青山の Oracle ビルへ。前回から、"Solaris Internals" の "PART FOUR Memory" の要約に着手していて、今回は "Chapter 8: Intruduction to Solaris Memory" に関する要約の続き。例によって、周辺…

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

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

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

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

Mercurial 1.7 版以後の backout 挙動

11 月初旬リリースの Mercurial 1.7 に向けてメッセージ翻訳の日々を送っていたところ、backout コマンドのオンラインヘルプではたと筆が止まる。何やら 1.7 版からは --merge オプションが指定されない場合の挙動が変わるらしいのだが、そもそも原文が --me…

最新 hgbook のビルド

旧形式(TeX)版ベースの翻訳公開から随分経過してしまったけど、最新版への追従作業を開始すべく、まずは最新ソースでのビルドを実施。以前の翻訳作業の時も、翻訳作業そのものよりも寧ろビルド(= HTML/PDF ファイル形式への変換)に手間が掛かったのだけど、…

空白詰めと符号化方式

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

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

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

段落分割に伴うメッセージ翻訳

2010/07/01 前後にリリースされる Mercurial 1.6 版から、メッセージの翻訳単位が段落毎に変更となる。従来は、コマンドの説明文原文に一文字でも変更があると、当該コマンドのヘルプドキュメントが丸々未翻訳な状態になっていたのだけれど、この変更により…

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

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