miauのブログ

はてなダイアリー「miauの避難所」をはてなブログに移行しました

「redMine」が「Redmine」の表記に変わったのっていつごろ?

Redmine をたまに「redMine」や「RedMine」と表記している人がいて気になったりします。確かに Redmine は当初「redMine」と表記されていて、どこかのタイミングで「Redmine」に変わったはずなんですけど・・・それがいつごろなのか Git の練習がてら大雑把に調べてみました。

だいたい 2007 年の 10〜11 月ごろ Redmine 表記になったってことみたいです。

簡単に調べてみる

リポジトリの情報があるので、これの readme 的なファイルをたどればどこかで redMine の表記に当たりそうですね。

とりあえず doc/INSTALL が手頃だったので、このファイルから探してみます。

>git clone http://github.com/edavis10/redmine
Cloning into redmine...
remote: Counting objects: 58049, done.
remote: Compressing objects: 100% (16723/16723), done.
remote: Total 58049 (delta 44327), reused 52954 (delta 40155)
Receiving objects: 100% (58049/58049), 12.54 MiB | 1.36 MiB/s, done.
Resolving deltas: 100% (44327/44327), done.

>cd redmine

>git log -SredMine -p -b doc\INSTALL
commit d0af24870eede648bf265d885126282c403e91fc
Author: Jean-Philippe Lang <jp_lang@yahoo.fr>
Date:   Sun Nov 4 13:19:42 2007 +0000

    Slight changes for 0.6.0 release.

    git-svn-id: http://redmine.rubyforge.org/svn/trunk@883 e93f8b46-1217-0410-a6
f0-8f06a7374b81

diff --git a/doc/INSTALL b/doc/INSTALL
index 8532d7a..4da5dae 100644
--- a/doc/INSTALL
+++ b/doc/INSTALL
@@ -1,13 +1,13 @@
-== redMine installation
+== Redmine installation

-redMine - project management software
+Redmine - project management software
 Copyright (C) 2006-2007  Jean-Philippe Lang
-http://redmine.rubyforge.org/
+http://www.redmine.org/
(以下略)

ということで、2007-11-04(バージョンでいうと 0.6.0 のリリース前)には Redmine 表記にすることに決まっていたみたいです。

ちなみに -S オプションは -S の直後にスペースを入れられないので要注意です。

もう少し詳細に調べてみる(git log -G の練習)

せっかくなのでGit 1.7.4 のリリースノート にある

* "git log -G" limits the output to commits whose change has
added or deleted lines that match the given pattern.

の機能を使ってもう少し詳細に調べてみようかなと。

これを使えば「コメント部分で redMineRedmine に変わった最初のリビジョン」を

git log -G"#.*redMine" -G"#.*Redmine" --reverse -p -b

みたいな感じで調べられそう・・・と思ったら -G は複数指定しても and 検索になってくれなくて、最後のものだけが有効になるみたいなのでこの方法は使えませんでした。

仕方ないので、

git log -G"^\s*#.*Redmine" --reverse -p -b

みたいな感じである程度絞って、あとはがんばって探してみることにします。

すると、

commit cedca57620e36fc8deb22653e91ef3e63fe63cf2
Author: Jean-Philippe Lang <jp_lang@yahoo.fr>
Date:   Sun Oct 21 16:26:14 2007 +0000

    SVN integration: reposman.rb can now register created repositories in Redmine, so that the administrator doesn't hav
    To do so, use the --url option when running reposman (see reposman help).

    git-svn-id: http://redmine.rubyforge.org/svn/trunk@860 e93f8b46-1217-0410-a6f0-8f06a7374b81

diff --git a/extra/svn/reposman.rb b/extra/svn/reposman.rb
index 028fa0e..d950f45 100755
--- a/extra/svn/reposman.rb
+++ b/extra/svn/reposman.rb
@@ -2,7 +2,7 @@

 # == Synopsis
 #
-# reposman: manages your svn repositories with redMine
+# reposman: manages your svn repositories with Redmine
 #
 # == Usage
 #
@@ -16,7 +16,7 @@
 #    use DIR as base directory for svn repositories
 #
 # -r, --redmine-host=HOST
-#    assume redMine is hosted on HOST.
+#    assume Redmine is hosted on HOST.
 #    you can use :
 #    * -r redmine.mydomain.foo        (will add http://)
 #    * -r http://redmine.mydomain.foo
(以下略)

こんなのが見つかりました。2007-10-21 には Redmine に変える方針が固まっていたみたいですね。

あたりは 2007 年 8 月(Redmine 0.5.1)の記事だから、redMine 表記になっている、と。

git log -G で指定する正規表現について

常に POSIX拡張正規表現になるようなので要注意です。ソース(diffcore-pickaxe.c)に

	err = regcomp(&regex, o->pickaxe, REG_EXTENDED | REG_NEWLINE);

みたいにべた書きされてました。

Subversion ではどうやって調べる?

Redmine は Git のリポジトリはミラーで、Subversion のほうが大元だった気がするので、念のためこちらも調べてみました。

Git は pickaxe(git log の -S オプションや -G オプション)が使えますけど、Subversion にはこんな便利機能はなく。git log -p 相当をやるだけでもこんな感じ?

ruby -e "url = ARGV.first; `svn log -q #{url}`.split(%<\n>).each {|line| puts line; system %<svn diff -c#{Regexp.last_match[1]} #{url}> if line =~ /^r(\d+)/}" http://redmine.rubyforge.org/svn/trunk/doc/INSTALL

ここからさらに grep したりは面倒なので、テキストエディタでログを眺めました。やっぱり Git は便利、ということで。