Tag/mercurial

hgweb のテーマ monoblue が Mercurial に取り込まれました

実は今日知ったんですが、以前作った monoblue という hgweb のテーマが Mercurial に取り込まれてました。いつのリリース版から導入されるかはわからないですが、現状 trunk なら使うことができます。例えば本家の場合だと以下のようにすると、 monoblue で表示することができます。

http://www.selenic.com/hg/index.cgi/rev/91b0ada2d94b?style=monoblue

そもそも作りはじめたきっかけは、 CVS も Subversion も使う気になれなかった自分にとって Mercurial が Life Changing な衝撃だったので、何か貢献できればと思って作りました。HTMLとCSSが書けるだけでも多少の貢献ができてよかったと思っております。

Posted at: 
2008/11/03 00:04:42
8 Comments
1 TrackBack
Tags: 
mercurial
Trackback: 
http://blog.monospace.jp/2008/11/03/monoblue_commited/trackback/

Mercurial Dev を実験台にしてパッチを送る方法を学んだ

事の発端

すでに4ヶ月前になりますが、こんなものを作っていました。

[追記 2008/10/12] 以下の URL に patch をあてて、monoblue を試す方法を書きました。

http://blog.monospace.jp/2008/06/07/hgweb_design_template/

しばらく放置…ののち

PATCH 形式でくれっていわれて、すぐに送るつもりだったけど、hgwebにグラフ機能がついたり、直す箇所とかもあって放置していたら、すでに10月でした。とあるメールがきっかけで勢いで作ってパッチを送ったんですが、見事に失敗…Mercurial Developers の ML にゴミを残してしまいました。

問題のポイント

Mercurial Developers の ML はいつも見てるので、パッチを送る場合は、[PATCH]とか複数の場合は[PATCH 1 of 3]みたいな感じで送ればいいんだなと認識してたので、そういう感じで作ってみました。今回のパッチは、すべてのファイルが新規ファイルで、10個以上のHTMLとCSSを含んでいるので行数にすると1400行くらいです。これをメールの本文に貼るのは、つらいと思っていくつかに分割してみました。(そもそもこれが間違いで、分割するのはChangesetが分かれてるときだけっぽい)。で、手動で3つに分けてGmailから送信。

なぜ分割したかという言い訳をちょっとしておくと、最初に1400行のまま送ったパッチがどうやら送信されなかったっぽい?ので容量オーバーかと思ったわけです。

ご教授頂く

自分が送ったパッチを見てくれた方が、Gmailからの送信のときに改行でおかしくなってるよと指摘してくれて、↓の Patchbomb という拡張機能を教えてくれました。この機能を見てちょっとはずかしくなったわけです。どうやら[PATCH 1 of 3]っていうのは、手動でやってるわけじゃなくて、この拡張を使うと勝手に changeset に分けてそういうメールを作って送ってくれるみたいなんです。使ってみてちょっと感動しました。

http://www.selenic.com/mercurial/wiki/index.cgi/PatchbombExtension

Twitter で長い URL を載せるときに自分で TinyURL に行って短い URL にして貼っていたのを思い出しました。勝手にやってくれるのを知ったときも衝撃でしたね。

パッチの問題はいろいろあるっぽい?

こんだけ大量のパッチがとびかってるとそりゃー大変でしょうね。↓こんなのがあがってました。パッチを送るときの心得みたいなものがのってます。本文にインラインで入ってるのが望ましいっていうのがちょっと意外だったんだけど、大量のパッチをさばくとなるとその方が楽なのかな。添付だと確かに開く手間がちょっとあるし。

http://www.selenic.com/mercurial/wiki/index.cgi/SuccessfulPatch

というわけで

Mercurial を使ってるプロジェクトでパッチをやりとりするならこの方法なのかな。本家がやってるくらいだから推奨なんでしょうね。

で、自分のパッチが採用になるかは分かりませんが、特にすごい技術力がなくても(たいしたデザインもしてないし、HTMLとCSS書いただけ)こうやってオープンソースのプロジェクトに参加できるんだなってことが分かったし、いろいろと勉強になります。英語とかも。目指せ世界進出。

Posted at: 
2008/10/10 04:00:06
3 Comments
0 TrackBacks
Tags: 
mercurial
Trackback: 
http://blog.monospace.jp/2008/10/10/mercurial_sending_patch/trackback/

Mercurial の hgweb のデザインテンプレートを作ってみた & 配布します

ふと思いたったので、hgweb のデザインテンプレートを作ってみました。 hgweb っていうのは、Mercurial の Web で閲覧できるリポジトリビューアなわけですが、 非常に使えるものなので、アピールをかねて作りました。

http://selenic.com/repo/hg (デフォルト)

http://hg.monologista.jp/monologista/ (デフォルトで入ってる gitweb というテンプレート)

http://hg.monologista.jp/monologista-gae/ (今回作成した monoblue というテンプレート)

[ 追記 : 2008/10/10 ]

一部変更しています。角丸がなくなってたりグラフに対応してたり。

デザイン的にはシンプルに作ってあります。 基本的には、gitweb というテンプレートを改造していったのですが、 HTML がひどかったので95%書きなおして、 XHTML1.0 Strict で Valid にしました。

[ 追記 : 2008/06/06 ]

確認済ブラウザは、Firefox2.0、Safari3.1、IE6 (IE7はみてない…あとIE6では角丸になりません)

ちなみに、 hgweb は extension を使うことで、ソースコードのハイライトなんかもできます。(要 Pygments) リポジトリを公開したいけど、 Trac をたてるまでもないときとかに十分使えそうです。

[ 追記 : 2008/10/12 ]

ここから下はパッチをあてる方法に書き直しました。

monoblue の使用方法

とりあえず簡単に試す方法(とおもったら割と面倒?)。 Mercurial がインストールされているのが前提です。

Mercurial の trunk を clone します。

$ hg clone http://selenic.com/repo/hg/

monoblue の patch をダウンロード。

<a href="http://dl.getdropbox.com/u/97681/monoblue.patch">monoblue パッチをダウンロード</a>

monoblue.patch というファイルが保存されると思いますので、パッチのインポートを行ってください。 mercurialのリポジトリに移動して、以下のコマンドを実行します。

$ hg import /path/to/monoblue.patch

パッチあてた版をインストール

$ python setup.py install

Mercurial で管理しているプロジェクトの .hg/hgrc に以下を追加

[web]
style = monoblue

hgweb をローカルホストで実行。

$ hg serve

これで、 http://localhost:8000 にアクセスすると見れます。もしくは、.hg/hgrc に書かなくても、http://localhost:8000/?style=monoblue でもいけるかも。

多分以上です。 ライセンスは、Mercurial が GPL だから GPL ということで。

Posted at: 
2008/06/07 00:23:16
0 Comments
1 TrackBack
Tags: 
mercurial
Trackback: 
http://blog.monospace.jp/2008/06/07/hgweb_design_template/trackback/