CodingFirst

C言語、Perl、JavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。

スポンサーサイト

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SubversionのコミットメールをPerlで書いた

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

Subversionのコミット通知メールをPerlで書いた。

svnは中央集権型だからか
誰かがコミットしたとか最新の更新情報が欲しくなるので、
コミット通知はやっぱかかせない。

svnのサーバでコミットメールを配信するには、
リポジトリのhookディレクトリにpost-commitという名の
スクリプトをおいてその中で配信すればいい。
(Windowsの場合はpost-commit.batにするんだったかな)

メール配信するスクリプトは一般的にはcommit-email.plを使う。
このスクリプトはsvn本家のサイトに置いてある..と思ったら、rubyになってた!!
http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/commit-email.rb

一瞬、これでいいじゃんとは思うけど、
日本語化が必要だったり、BTSとの連携面が弱いので
自分で書いてみた。perlだけど。

書いたスクリプトは gist に置いた。
https://gist.github.com/924175

配信されたメールはこんな感じ。

Date: Mon, 18 Apr 2011 00:08:20 +0900
From: commiter 
To: ccc@ddd.eee
Subject: [yourprj]r1 - first commit

first commit

hogehoge
ageage

(refs #1,2,3000)
(refs 4)

Author:  commiter
Date:    2011-04-18 01:00:15 +0900 (月, 18  4月 2011)
Rev:     r1 http://path/to/trac/yourprj/changeset/1
Tickets: #1 http://path/to/trac/yourprj/ticket/1
         #2 http://path/to/trac/yourprj/ticket/2
         #3000 http://path/to/trac/yourprj/ticket/3000
         #4 http://path/to/trac/yourprj/ticket/4
Changed:
  A   hello
  A   world

BTSはTrac用に書いてみた。
複数のチケット、チェンジセットへのリンクを
メールに載せるようにしてある。

そうそう。設置方法は hookにあるpost-commit.tmplを参考に

#!/bin/sh

REPOS="$1"
REV="$2"

"$REPOS"/hooks/svn-ci-mail.pl "$REPOS" $REV

こんな感じで



実用 Subversion 第2版実用 Subversion 第2版
(2009/07/27)
C. Michael Pilato、Ben Collins-Sussman 他

商品詳細を見る


入門Trac with Subversion―Linux/Windows対応入門Trac with Subversion―Linux/Windows対応
(2008/05)
高山 恭介

商品詳細を見る


Perl逆引きクイックリファレンス―Perl5.8対応Perl逆引きクイックリファレンス―Perl5.8対応
(2007/03)
坂田 健二

商品詳細を見る

«  | HOME |  »

Search

Recent Entries

Foot Print



Categories

Monthly

Recent Comments

Recent Trackbacks

Profile

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。