redmineを導入して改善したこと

redmineを導入して改善したことを残しておきます。

  • 元々の経緯
  • システム開発のバグ管理表をエクセルで管理をしていたが問題点があった。
    もっと簡単にバグ管理を行いたかった。

  • 以前までの状態
  • バグをエクセルファイルに登録、編集、削除をしていた。
    エクセルファイルはSubversionで共有、管理をしていた。
    1シートで管理をしていた。
    エクセルファイルを使う人はだいたい5人前後。

  • エクセルファイル+Subversionのときの問題点
  • 誰かが記入をしてsvn commitをするまで更新ができない。
    案件ごとにファイルが別になっているので過去の情報の検索がファイルを開かないとわからない。
    1セルに長文を書くと読みにくい。短いと意図が伝わりにくい。
    ソースコードの指摘をするときに書きにくい、読みにくい。
    バグ票の記載に関する追記事項がでてきて追加をすると、読みにくい。

  • redmineにしてから改善したこと
  • 他の人の更新を待たずに済むようになった(同じチケットを更新すると競合することはある)。
    標準で検索機能があるので検索が容易になった。
    1チケットずつの詳細表示画面があるので長文を書いても大丈夫になった。
    コードハイライト機能があるのでソースコードを記入しても読みやすくなった。
    注記によって質問と回答などのやりとりができるようになった。

  • redmineにしても残る課題
  • 入力項目をきちんと記入しないで空欄のままになってしまう。

他にも感じることがあれば追加していく。

redmineとsvnを連携して「リポジトリに、エントリ/リビジョンが存在しません。」メッセージが出力されたときにした対応

redmine_code_review pluginを使ってredmineとsvnを連携していたときにリポジトリを追加してリポジトリタブからアクセスをしたら「リポジトリに、エントリ/リビジョンが存在しません。」という画面メッセージが出力された。

結論としてはリポジトリのURL欄にIPアドレスではなくてホスト名を指定して登録したらアクセスできるようになった。

・環境
Bitnami redmine 3.4.4-1
VISUAL SVN SERVER 3.7.1

・redmineのログに出力されていたエラーメッセージ
Bitnami redmineのインストールディレクトリ\apps\redmine\htdocs\log\production.log
Error parsing svn output: No close tag for /lists/list

Bitnami redmineのバックアップをバッチで自動化する

以前、Bitnami redmineのバックアップ方法を書いた。
Bitnami redmineのバックアップとリストアをやってみた

今度はそれを自動化してみる。
とはいっても、batファイルを作ってwindowsのタスクに登録するだけでよい。

環境
Windows 10
Bitnami redmine 3.4.3-1

作成するbatファイルは以下の通り。

rem データバックアップを取得するディレクトリに移動
cd directory_path

rem 本日日付のディレクトリを作成する。
set DATE_STR=%date:~0,4%%date:~5,2%%date:~8,2%
mkdir %DATE_STR%
cd %DATE_STR%
mkdir files
mkdir plugins

rem redmineのデータベースをバックアップする
mysqldump.exe -u user_name -ppassword bitnami_redmine -P port_number --default-character-set=binary > backup.dmp

rem filesとpluginsディレクトリのコピー
xcopy /T /E redmine_root\apps\redmine\htdocs\files files
xcopy /T /E redmine_root\apps\redmine\htdocs\plugins plugins

pause

・注意事項
redmine利用者が利用しない時間帯にタスクを動かすのでApacheを停止させることはしていない。
redmineのメール送信設定なども修正している場合、設定ファイルもバックアップしておいたほうが良いかもしれない。

・batファイル内の文字列説明
directory_path:バックアップ用のディレクトリ
user_name:MySQLのユーザ
password:MySQLのユーザパスワード
bitnami_redmine:バックアップを取得するデータベース名
port_number:MySQLのポート番号
redmine_root:bitnami redmineをインストールしたディレクトリ

redmineのメール通知でエラーが出た時の原因と対応

redmineでメール通知の設定をしていて以下のエラーメッセージが発生した。
メール送信中にエラーが発生しました (Permission denied – connect(2) for “xxx.xxx.xxx.xxx” port xx)

環境
Windows10
Bitnami Redmine Stack 3.4.2-4

redmineとエラーメッセージで検索しても有効な情報を得られなかった。
なので「redmine (Permission denied – connect(2) for」で検索をするとStack Overflowの質問が一番上に出てきて読んでみるとMcAfeeがメール送信をブロックしているということが書いてあった。

そこでMcAfeeのログを調べると以下のログが大量に出力されていた。
ポート ブロック ルールによりブロックされました
C:\BITNAMI\REDMINE-3.4.2-4\RUBY\BIN\RUBY.EXE
Anti-virus Standard Protection:Prevent mass mailing worms from sending mail
xxx.xxx.xxx.xxx:xx

設定を調べると「大量メール配信型ワームにメールを送信させない」の設定が有効になっていた。
以下の除外プロセス指定のやり方を参考にしてRUBY.EXEをブロック除外にしたらredmineからメール送信ができた。

除外プロセス指定のやり方
アクセス保護のポート ブロック ルールにプロセス例外を追加する方法

1. [スタート]、[すべてのプログラム]、[McAfee]、[VirusScan コンソール] の順にクリックします。
2. アクセス保護 をダブルクリックします。
3. 適切なポート ブロック ルールを選択して、[編集] をクリックします。
 例: ウイルス対策標準保護、大量メール配信型ワームにメールを送信させない
4. [除外プロセス] のリストに適切なプロセス名 (下の一覧を参照) を追加します。
 重要: カンマで区切られたプロセス名の前にスペースがないようにします。
 例: ,outlook.exe, msimn.exe,
5. [OK] を必要なだけクリックして、[アクセス保護のプロパティ] ウィンドウを閉じます。
6. VirusScan コンソールを終了します。

Bitnami redmineのバックアップとリストアをやってみた

新しいプラグインを試したくなったのでプラグインのインストール前にBitnami redmineのバックアップとリストアをやってみた。

●環境
・Windows10
・バックアップする側:Bitnami Redmine Stack 3.4.2-4
・リストアする側:Bitnami Redmine Stack 3.4.3-1

●前提
・redmineをインストールしたディレクトリを以下とする。
C:\Bitnami\redmine-3.4.2-4\
C:\Bitnami\redmine-3.4.3-1\
・コマンドはコマンドプロンプトから実行する。
・バックアップする側のredmineのチケットにファイルをアップロードしている。
・バックアップする側のredmineにプラグインを導入している。
・バックアップする側のmysqlはポート番号13306で起動している。
・リストアする側は別のPC。

●バックアップ
・redmineにアクセスできないようにApacheを停止する。
・mysqld.exeを使うのでコマンドへのパスを指定する。

set PATH=%PATH%;C:\Bitnami\redmine-3.4.2-4\mysql\bin

・バックアップする側でデータベースのバックアップを取得する。

mysqldump.exe -u root -p bitnami_redmine -P 13306 --default-character-set=binary > backup.dmp

・チケットに添付したファイル類をコピーする。
C:\Bitnami\redmine-3.4.2-4\apps\redmine\htdocs\filesフォルダすべて。
・インストールしていたプラグインをコピーする。
C:\Bitnami\redmine-3.4.2-4\apps\redmine\htdocs\pluginsフォルダすべて。

●リストア
・redmineにアクセスできないようにApacheを停止する。
・mysql.exeを使うのでコマンドへのパスを指定する。

set PATH=%PATH%;C:\Bitnami\redmine-3.4.3-1\mysql\bin

・backup.dmpファイルのあるディレクトリに移動してからリストアするコマンドを実行する。

mysql -u root -p -D bitnami_redmine < backup.dmp

・チケットに添付したファイルとプラグインのコピーを以下に置く。
C:\Bitnami\redmine-3.4.3-1\apps\redmine\htdocs\files
C:\Bitnami\redmine-3.4.3-1\apps\redmine\htdocs\plugins
・Apacheを再起動して元々使っていたユーザでログインできればリストア完了。

redmineでチケット内の注記(#note-n)にリンクを貼る

redmineで注記を増やしていくとだんだん過去の注記を参照させたくなるときがある。
チケット内の参照させたい注記番号が3のときに「#3」とするとrdmineの#3チケットにリンクされてしまう。

仮にチケット番号#500内の注記番号#3にリンクさせたいときは
「#500-3」
のように指定すればリンクになってくれる。

redmineのプラグインをアップグレードするときに手間取ったこと。

redmineのプラグインをアップグレードするときに手間取ったこと。

環境
Bitnami redmine 3.4

アップグレードするには最新のファイル類をpluginsディレクトリ(redmine-3.4のインストールディレクトリ/apps/redmine/htdocs/plugins)にコピーしてから以下のコマンドを実施する。

bundle exec rake redmine:plugins:migrate NAME=redmine_foo RAILS_ENV=production

NAME=redmine_fooはプラグイン名を指定する。

最初に起きた問題はrakeコマンドをがないと言われた。
解決策はBitnami Redmineをインストールしたディレクトリにある「use_redmine.bat」からBitnami Redmine Stack Environmentを起動してそこからコマンドを実施した。

次の問題はBitnami Redmine Stack Environmentからコマンドを実行すると以下のメッセージが出力された。
出力されたメッセージ

rake aborted!
Child already added
apps/redmine/htdocs/lib/redmine/menu_manager.rb:370:in `add_at'
apps/redmine/htdocs/lib/redmine/menu_manager.rb:297:in `push'
apps/redmine/htdocs/lib/redmine/plugin.rb:279:in `menu'
apps/redmine/htdocs/plugins/redmine_code_review/init.rb:73:in `block in <top (required)>'

ネットで検索をすると同じ名前があるからメニュー登録しているときに重複が発生してエラーになってるというようなことが書かれていた。
思い当たったのは古いプラグインディレクトリを名前を変えてpluginsディレクトリに置いていた。
・そのときのpluginsディレクトリのイメージ
plugins/redmine_foo
plugins/1.0.0_redmine_foo

解決策は古いプラグインディレクトリを関係ない場所に移動してからコマンドを実行した。
最終的には正常にコマンドが実行されてredmineからプラグインを確認するとアップグレードのバージョンになっていた。