BitNami Redmine Stackの良いところは、既存の環境を壊さずにRedmineを使えることです。
既存の環境を壊さない、ということは削除が楽と言うことです。
Redmine一式だけでなく、ソースコード管理システムである、SubversionGitも組み込まれます。
ところが、Redmineのプラグイン開発者の中には、GitでもSubversionでもなく、Mercurialでソースを管理している方が大勢います。
そのため、プラグインを入手・更新するのに、ダウンロード、展開、コピーという手間をかける必要があります。
それは面倒。ということでBitNami Redmine Stack自身にMercurialを組み込みます。

一番大事なのは、Mercurialをインストールしないということです。
大まかな手順は

  1. Mercurialをポータブル化
  2. BitNami Redmine StackのコンソールからMercurialを呼べるようにする

になります。

1. Mercurialをポータブル化

基本は、Mercurial をポータブル化する方法 を参考にしました。
TortoiseHgを展開して中のファイル群を取り出す手法です。
この手順をバッチファイルに纏めました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
@echo off

@set INSTALLER=%CD%%~1
@set HGTEMP=%CD%hgtemp
@set HG=%CD%hg

echo *********************************************************
echo.
echo インストーラを展開します。
echo.
echo *********************************************************

@mkdir "%HGTEMP%"
@msiexec.exe /a "%INSTALLER%" targetdir="%HGTEMP%" /qn

echo.
echo *********************************************************
echo.
echo 必要なファイル群を展開します。
echo.
echo *********************************************************
echo.

@xcopy "%HGTEMP%\PFiles\TortoiseHg" "%HG%\" /y /s /q /d /h

echo.
echo *********************************************************
echo.
echo 不要なファイル群を削除します。
echo.
echo *********************************************************

@rmdir "%HGTEMP%" /s /q
@rmdir "%HG%\i18n" /s /q
@rmdir "%HG%\locale" /s /q
@rmdir "%HG%\contrib" /s /q
@rmdir "%HG%\diff-scripts" /s /q
@rmdir "%HG%\doc" /s /q
@rmdir "%HG%\help" /s /q
@rmdir "%HG%\hgrc.d" /s /q
@del "%HG%\ThgShellx64.dll"
@del "%HG%\TortoiseHgOverlayServer.exe"
@del "%HG%\TortoisePlink.exe"
@del "%HG%\COPYING.txt"
@del "%HG%\docdiff.exe"
@del "%HG%\extension-versions.txt"
@del "%HG%\kdiff3.exe"
@del "%HG%\Pageant.exe"

コマンドプロンプトでこのバッチファイルにTortoiseHgのインストーラを渡すだけです。

1
portable.bat tortoisehg-2.7.0-hg-2.4.2+-x64.msi

これにより、カレントディレクトリにhgフォルダができあがり、Hg.exeが入手できます。

2. BitNami Redmine StackのコンソールからMercurialを呼べるようにする

ここからが肝です。
まず、できあがったhgフォルダをBitNami Redmine Stackのインストール先にコピーします(gitフォルダがある階層です)。
このインストール先を_InstallDir_とします。

InstallDir\scripts\setenv.batをテキストエディタで開きます。

先頭行に

1
set PATH=InstallDir/git\cmd;InstallDir/DevKit\bin;InstallDir/DevKit\mingw\bin;InstallDir/sqlite;InstallDir\imagemagick;InstallDir\ruby\bin;InstallDir/subversion\bin;C:/BitNami/Redmine/php;InstallDir/mysql\bin;%PATH%

のような記述があります。その直後に、

1
set PATH=InstallDir/hg;%PATH%

と追加してください。
これにより スタートメニュー->BitNami Redmine Stack->Use BitNami Redmine Stack からのコマンドプロンプトでMercurialを呼び出すことができます。

Mercurialの呼び出し

次に。リポジトリを閲覧するための設定を変更します。

InstallDir\apps\redmine\htdocs\config\configuration.ymlをテキストエディタで開きます。

130行目あたりを

1
2
- scm_mercurial_command:
+ scm_mercurial_command: InstallDir\hg\hg.exe

に修正します。
その後、Redmineを再起動します。

再起動後、管理->設定->リポジトリにて使用するバージョン管理システムを確認すると、Mercurialが使用できるようになっています。
(チェックボックスにチェックがついていないなら、チェックしてください)

使用するバージョン管理システム

以上で終了です。