4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MercurialのPatchbombでパッチメールの送信作業を自動化

Last updated at Posted at 2014-07-10

結構前にnginxの開発MLにパッチを送るというエントリを書いたが、昨日またnginxの開発MLにパッチを投稿する機会があってその際にMercurialのPatchbombという拡張を使うと便利なのが分かったので書いてみる(nginx本家でもパッチをこっちの方法を奨めている)。

Patchbombを使わない場合

今まではコミット内容をテキストで出力してメール本文にコピー&ペースト&添付して送っていた。

$ hg export -r 5252 > patchfile

しかし、これは事故りやすい。特にメール本文にコミットテキストを貼り付ける際に事故りやすい。また、一連の作業を手動で行うので緊張してミスる可能性も高い。

Patchbombを使う場合

これに対してPatchbombを使うとパッチメールを送る一連の作業を自動化できる。設定は手元の.hgrcに以下のように数行追記するだけでよい。ここでは送信する際にsendmailを使ってるが、特定のSMTPサーバを指定することもできる。詳しくはMercurial本家の解説を参照。

.hgrc
[extensions]
hgext.patchbomb =

[email]
method = /usr/sbin/sendmail

あとはhg emailで送信したいコミットのリビジョン番号や送信先を指定して実行する。

$ hg email --from "myemail at example.com" --to "target at example.com" -r 5252

--testを指定すると--dry-run的な動きをする。

$ hg email --test --from "myemail at example.com" --to "target at example.com" -r 5252

リビジョン番号を範囲指定するとその範囲分のコミットの数だけメールを送ってくれるので便利。

$ hg email --from "myemail at example.com" --to "target at example.com" -r 5763:5765

ちなみに今回実際に送ったパッチはこんな感じ。コマンド一発でいい感じのメールをまとめて送ってくれるのでとてもよい。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?