svk が cygwin 上で動かん.
新しいPCになってから動かなくなっている.
やったことは SVK Win32 Binaries から SVK のインストーラを取ってきて,とある場所 FOO にインストール.FOO にはスペースも日本語も含まれていない.
そして,Windows の環境変数 PATH に加えられた %FOO%/svk/bin を削除して,cygwin 上で $HOME/bin/svk を以下の内容で作成.
#! /usr/bin/sh $FOO/svk/bin/perl.exe "$(cygpath --windows $FOO/svk/bin/svk)" "$@"
で,だ.$FOO/svk/bin で上で作った $HOME/bin/svk を引数なしで実行するとヘルプが表示される → 正常な結果.
それ以外の場所で $HOME/bin/svk を引数なしで実行すると以下のメッセージが...%FOO% は実際の Windows のパスになっている.
Use of uninitialized value in pattern match (m//) at %FOO%/svk/lib/Class/Autouse.pm line 489. Can't load '%FOO%/svk/lib/auto/SVN/_Ra/_Ra.dll' for module SVN::_Ra: load_file:このオペレーティング システムでは %1 は実行されません。 at %FOO%/svk/lib/DynaLoader.pm line 230. at %FOO%/svk/lib/SVN/Base.pm line 59 BEGIN failed--compilation aborted at %FOO%/svk/lib/SVN/Ra.pm line 5. Compilation failed in require at %FOO%/svk/site/lib/SVK/Util.pm line 29. BEGIN failed--compilation aborted at %FOO%/svk/site/lib/SVK/Util.pm line 29. Compilation failed in require at %FOO%/svk/site/lib/SVK/Command.pm line 7. BEGIN failed--compilation aborted at %FOO%/svk/site/lib/SVK/Command.pm line 7. Compilation failed in require at %FOO%/svk/lib/Class/Autouse.pm line 368. at %FOO%/svk/bin/svk line 48
perl はよくわからんし,なんでだ!?
ちなみに,$HOME/bin/svk で作成したコマンド経由で SVK を実行しているのは cygwin の perl じゃなくて SVK に付属の perl を実行するため.ここらへん では alias が良いよと言ってるけど,まぁ同じことだろう.