svn delete
Grails アプリから実行したい。Grails コンソールで次の両方をテストしました。
"svn delete /usr/share/mydir".execute()
Runtime.getRuntime().exec("svn delete /usr/share/mydir")
どちらの場合も、 のインスタンスjava.lang.Process
が返されますが、コマンドは実行されません (/usr/share/mydir
は削除されません)。
この動作は、アプリが Linux (Ubuntu) で実行されている場合にのみ発生します。Windowsで実行すると、コマンドが実行されます。
アップデート
コメントでのティムのアドバイスに従って、プロセス出力をキャプチャするようにコマンドを変更しました。
def process = "svn delete /usr/share/mydir".execute()
def out = new StringBuilder()
process.waitForProcessOutput(out, new StringBuilder())
println "$out"
失敗した理由は次のとおりであることがわかりました。
エラー svn: ファイル '/usr/share/mydir/.svn/lock' を開けません: アクセス許可が拒否されました