0

ruby でいくつかのファイルを svn リポジトリにアップロードしようとしています。しかし、チェックアウト後、残りのコードは実行されていません。

r = SvnRepository.new("#{repDir}")
r.checkout("", ".", user, pass)

puts "NOT EXECUTING!"
`cp -r #{compFold} ./trunk/#{compFold}`
r.add("trunk", "./#{compFold}")
r.commit("trunk", "Component #{compFold} uploaded", user, pass)

r.checkout コード:

def checkout(repository, working_copy_path, user = nil, pass = nil)
    #result = `cd #{working_copy_path} && #{@svn} co file:///#{@repository_base}/#{repository}`
    check = "cd #{working_copy_path} && #{@svn} co #{@repository_base}/#{repository}"
    if user != nil
        check = check + " --username #{user}"
        if pass != nil
            check = check + " --password #{pass}"
        end
    end

    result = exec(check)
    result[/d+/]
end
4

1 に答える 1

0

execinsideの呼び出しcheckoutは、現在のプロセスを実行中のプログラムのプロセスに置き換えます。したがって、exec決して戻りません。詳細については、ドキュメントを参照してください。

に置き換えexecspawn、制御プロセスとは別のプロセスを実行できるようにすることができます。を呼び出すspawnと、 を使用して監視できる新しいプロセスの pid が返されますProcess

于 2012-10-10T10:22:01.420 に答える