cmd = \"snv co #{rep} --username #{svn_user} --password #{pxs}\"
puts cmd # this code wotks and prints all vars values normally
exec(cmd)
Your cmd
string has got a null (i.e. zero) byte in it somehow. Using puts
won’t show up any null bytes, they’ll just be left out of the output:
1.8.7 :001 > exec "\0"
ArgumentError: string contains null byte
from (irb):1:in `exec'
from (irb):1
1.8.7 :002 > puts "n\0n"
nn
=> nil
You should probably check how your rep
, svn_user
and pxs
variables are being populated to see if you can track down the source of these null bytes, but as a quick fix you could use gsub!
to remove them:
cmd.gsub!(/\0/, '')