Topic: svn repository or role ?!

I'm reading the http://manuals.rubyonrails.com/read/book/17 and i tried to test my first capistrano deploying. I specified in deploy.rb :

set :application, "MyApp"
set :repository, "http://myserver.svnrepository.com/svn/MyApp/trunk"

As far as i know this will deploy the application in that repository, but what i dont know is why i'm specifying
role :web,
role :app, role :db,

And i don't know if i have to fill:
# =============================================================================
# OPTIONAL VARIABLES
# =============================================================================

like:
set :deploy_to, "xxx" # defaults to "/u/apps/#{application}"
set :user,

Even i have all rights to my server :ftp/ssh/svn, i want to know each of them i need exactly and which space will hold the application that i will deploy to the web.

thanks