彷徨えるフジワラ

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

mercurial

Mercurial で困った時に

このエントリは、Mercurial Advent Calendar 2013 の25日目です。このエントリでは、Mercurial を利用していて: ある機能を使いたいが、詳細がよくわからない 期待通りに機能しない やりたい事があるが、どの機能を使えばよいのかわからない といった場合に…

パーフェクト dirstate 〜 トラブル対処編

このエントリは、Mercurial Advent Calendar 2013 の24日目です。本エントリでは、基礎編での .hg/dirstate に関する説明を踏まえて、いくつかのよくあるトラブルに対して、その原因と対処方法について説明します。 プラットフォームによるモード判定の可否 …

bundle マニアックス

このエントリは、Mercurial Advent Calendar 2013 の23日目です。本エントリでは、rebase や MQ、同梱版の shelve 等を使わない場合は、普段あまり目にする機会がない、日陰者の bundle ファイルに関して、徹底的に説明しようと思います。hg diff や hg expo…

color+pager 完全マスター

※ ページャ併用の有無によるモード切り替えに関する追記あり@2015-05-02このエントリは、Mercurial Advent Calendar 2013 の22日目です。id:tk0miya さんによる、17日目のエントリや、ターミナル判定の話との被り具合に一抹の不安を隠せませんが、一応別視…

パーフェクト dirstate 〜 基礎編

このエントリは、Mercurial Advent Calendar 2013 の20日目です。エントリを公開するのは 12/29 ですが、諦めたらそこでクリスマス終了です。諦めるまでがクリスマスです(笑)。Mercurial では、hg status を使うことで、作業領域中の管理対象ファイルに対…

TortoiseHg の独自機能 〜 サブリポジトリのファイル検索

このエントリは、Mercurial Advent Calendar 2013 の15日目です。このエントリでは、前回の「TortoiseHg の独自機能 〜 サブリポジトリの状態表示」に引き続き、TortoiseHg が独自に提供している機能として、「サブリポジトリのファイル検索」について説明し…

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

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

TortoiseHg の独自機能 〜 サブリポジトリの状態表示

このエントリは、Mercurial Advent Calendar 2013 の13日目です。このエントリでは、前回の「TortoiseHg の独自機能 〜 変更の退避」に引き続き、TortoiseHg が独自に提供している機能として、「サブリポジトリの状態表示」について説明しようと思います。サ…

TortoiseHg の独自機能 〜 変更の退避

このエントリは、Mercurial Advent Calendar 2013 の11日目です。このエントリでは、前回の「TortoiseHg の独自機能 〜 履歴の圧縮」に引き続き、TortoiseHg が独自に同梱している機能の紹介として、「変更の退避(shelve)」について説明しようと思います。と…

TortoiseHg の独自機能 〜 履歴の圧縮

このエントリは、Mercurial Advent Calendar 2013 の5日目です。「Mercurial の GUI」として知られている TortoiseHg ですが、単純にユーザインタフェースをグラフィカルにしただけではありません。Mercurial には無い独自機能も提供しています。このエント…

非 ASCII 文字出力により、Windows 上での Mercurial 実行が中断される問題

時間の無い方向けに、先に要点をまとめておきます(笑)。Windows 環境で以下の条件が成立する場合、 Mercurial が非 ASCII 文字列を表示しようとすると、『表示失敗』扱いでコマンド実行が中断されます。 Windows 標準のコマンドプロンプト(cmd.exe)を使用…

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

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

文字大小を無視する .hgignore 記述

Twitter 上で以下のエントリを去年見かけたのですが: 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 = "h…

『Mercurial で pull request』したい Git ユーザが必要になるであろう、Mercurial におけるブランチの概念+アルファ

ツイッターで以下のようなツイートを見かけたので: 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 = "htt…

.hgignore における『無視対象に対する例外条件』指定の記述

Twitter 上で去年見かけた以下のエントリに関して: 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 = "htt…

TokyoMercurial #9

TokyoMercurial の第9回に参加してきた。運営の id:troter 氏ならびに参加者の皆様、お疲れ様でした。今回の個人的な黙々目標は、月末の 2.8 版リリースに向けて、コードフリーズ期間に投函するドキュメント周りの修正パッチの作成作業。基本的には、オンラ…

『入門TortoiseHg+Mercurial』へのご意見・ご要望・誤記情報等

拙著『入門TortoiseHg+Mercurial』に対するご意見・ご要望・誤記情報等ありましたら、本エントリへのコメントや、@flyingfoozyへのツイートなどでお寄せ頂けると助かります。入門TortoiseHg+Mercurial作者: 藤原克則出版社/メーカー: 秀和システム発売日: 20…

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

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

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

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

あなたの知らない(筈の) Mercurial テンプレート

このエントリは、Mercurial Advent Calendar 2012 の 19 日目です。例によって、エントリ公開の時点で日付が変わってしまっていますが、私が寝るまでが 12 月 19 日です。暫く前になりますが、開発者用MLに『テンプレート機能を拡張したよ!』という内容のメ…

カスタムツールで TortoiseHg を機能拡張

このエントリはTortoiseHg Advent Calendar 2012の17日目です。既に日付が変わってしまっていますが、私が寝るまでが17日です。 後でやろうと思っていたら既にやられていた。何を言っているかわからねーと思うが(略) 全ての始まりは、以下のツイートを目にし…

TokyoMercurial #6

TokyoMercurial #6 に参加してきた。運営の id:troter 氏ならびに参加者の皆様、お疲れ様でした。 本日の話題 obsolete 対応が着々と進みつつある、という話とか: obsolete が明示的に有効になっている場合に限り、2.4 版では rebase も obsolete 機能を利…

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

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

追加したファイルを、履歴を遡って改名する

2013/12/16: 適用済みパッチに対する hg rebase に関する追記あり 事の発端は以下のツイート: window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.cre…

エキスパートPythonプログラミング読書会

Mercurial について触れている『コードの管理』の章を扱うとのことなので、出版時に書籍を頂いた縁もあることから、『エキスパートPythonプログラミング読書会』に参加することに。Mercurial でのファイル名文字コードの話では、(僕が推測する) Matt が考え…

1.8 版以降の Mercurial を推奨

SSH 経由でリモートリポジトリと連携する際に、(1) 連携先ホストのシステムワイドに使用可能 (例: /usr/bin/hg 等) な hg コマンドのバージョンが低い一方で、(2) 連携先リポジトリの hg init で使用した hg コマンド (例 ${HOME} や /usr/local/bin 配下に…

Mercurial 2.3 版での内部 API 変更による 3rd party エクステンションのトラブル

Mercurial 2.3 では、幾つかの内部 API の仕様が変更されたことで、3rd party エクステンションの中には、正常に動作しないものがあります。現状、私が情報を把握しているものは以下のものです。 hggit (※ 修正済み) hgsubversion (※ 修正済み) projrc (※ 修…

ZIP 形式アーカイブのタイムスタンプ問題

※ 2012/09/13 追記とりあえず、時間の無い人向けに、簡単にまとめると: "hg archive" で生成した ZIP 形式のアーカイブは、展開時に日時情報がタイムゾーンオフセット分だけずれる ⇒ 日本では 9 時間早い日付になる 展開時にタイムゾーンを明示的に GMT ベー…

TokyoMercurial #5.5

TokyoMercurial #5.5に参加してきた。懇親会がビアバッシュ形式になったこともあり、今回は特に運営お疲れ様でした! > id:troter今回はいつもの『自分の課題に沿って黙々作業&質問/意見交換』な TokyoMercurial と違って、『入門者向け Mercurial ハンズ…

Python 関数の引数形式を調べる

Mercurial の 2.3 版における内部 API の改変により、collapse が動かなくなっているとの報告が。結局 revlog クラスの "def descendants(self, *revs)" メソッドが "def descendants(self, revs)" へとシグネチャ変更されたことが原因だったらしいことが判…