gitで対話的に本家リポジトリ所有者にメールを送るスクリプト
git cloneしておれおれパッチを書いた後に、本家のリポジトリへメールするのにいちいち「「git-format-patch origin」してから「git-send-email --smtp-server ほにゃらら --from めーる --to 相手のメール 0*.patch」して「rm 0*.patch」するのが面倒だ。darcsだったらdarcs sendでinteractiveにいけるのに…
しかもoriginリポジトリ所有者のメールアドレスって記憶されてないみたいね….git以下をgrepしても見つからんorz というわけでgit config remote.origin.emailに記憶させる。
というわけで、「git-format-patch origin」してからメールするパッチを対話的に選択して「git-send-email」してパッチを消すスクリプトを作成してみた。俺はまだgit初心者なのでgit的に正しいかどうかは知らん。
http://www.rubyist.net/~rubikitch/archive/git-send.rb
からもってけ!
ただし使う前には、 ~/.git-send.rb に
$GIT_SEND_EMAIL_OPTIONS = "--smtp-server mail.your.smtp --from your@mail.address "
のようにSMTP鯖とメールを指定する必要がある。設定ファイルがYAMLじゃないのは俺が怠惰だから:-)
実行結果はこんな感じ。
$ git-send.rb git-format-patch origin 0001-Old-.rubyforge-config.yml-exist-check.patch 0002-Old-.rubyforge-config.yml-exist-check.-exit.patch 0003-s-RubyForge-RubyForge-g.patch 0004-Added-RubyForge-package_id-check.patch 0005-Pass-a-version-string-not-Gem-Version-to-RubyForg.patch (ここで送るパッチかどうか聞いてくる) Send 0005-Pass-a-version-string-not-Gem-Version-to-RubyForg.patch? (y/n) y Send 0001-Old-.rubyforge-config.yml-exist-check.patch? (y/n) n Send 0002-Old-.rubyforge-config.yml-exist-check.-exit.patch? (y/n) n Send 0003-s-RubyForge-RubyForge-g.patch? (y/n) n Send 0004-Added-RubyForge-package_id-check.patch? (y/n) n (試運転) git-send-email --smtp-server mail.your.smtp --from your@mail.address --to repository@owner.jp --dry-run 0005-Pass-a-version-string-not-Gem-Version-to-RubyForg.patch 0005-Pass-a-version-string-not-Gem-Version-to-RubyForg.patch (mbox) Adding cc: rubikitch <your@mail.address> from line 'From: rubikitch <your@mail.address>' Dry-OK. Log says: Server: mail.your.smtp MAIL FROM:<your@mail.address> RCPT TO:<repository@owner.jp>,<your@mail.address> From: your@mail.address To: repository@owner.jp Cc: rubikitch <your@mail.address> Subject: [PATCH] Pass a version string (not Gem::Version) to RubyForge#add_release. Date: Sun, 1 Feb 2009 02:20:41 +0900 Message-Id: <1233422441-9285-1-git-send-email-your@mail.address> X-Mailer: git-send-email 1.5.6.5 Result: OK (送るパッチを表示・再確認) 0005-Pass-a-version-string-not-Gem-Version-to-RubyForg.patch ---- Press return to send ----- (以後実際に送信・蒔き散らかした*.patchの掃除)