====== Using Different Repositories ======
When you use the ''brightbox'' command to create your ''config/deploy.rb'' file, it doesn't use source code management and instead deploys whatever is in the current directory. That's great for quick start, but as you develop the application you are going to want to tie the deployment into some sort of source code version control respository.
===== Understanding deployment strategies =====
Capistrano comes with several 'deployment strategies' built in. All the repository examples on this page can use any of these strategies unless stated otherwise:
# the default behavior
set :deploy_via, :checkout
# use export, rather than checkout
set :deploy_via, :export
# keep a cached copy on the server.
set :deploy_via, :remote_cache
# checkout locally, then tar and gzip the copy
# and sftp it to the remote servers
set :deploy_via, :copy
set :copy_exclude, [".svn", ".git"]
# for tar+gzip+copy, but using an SCM export,
# rather than checkout
set :deploy_via, :copy
set :copy_strategy, :export
# for zip+copy, if you don't have tar or gzip handy
set :deploy_via :copy
set :copy_compression, :zip
# Keep a local checkout copy up to date and copy that.
set :deploy_via, :copy
set :copy_cache, true
set :copy_exclude, [".svn", ".git"]
===== Using the inbuilt Subversion repository =====
Each Brightbox comes with a [[docs:subversionrepository|subversion repository]] in the home directory of the ''rails'' user.
To use this repository remove the default settings and add in the following:
set :local_repository, "svn+ssh://rails@.vm.brightbox.net/home/rails/subversion/"
set :repository, "file:///home/rails/subversion/"
set :scm, :subversion
You can use Ruby-power to create the paths in the usual fashion. For example
set :repository, "file:///home/#{user}/subversion/#{application}/trunk"
set :local_repository, repository.sub(%r{^file://}, "svn+ssh://#{user}@bbtest-001.vm.brightbox.net")
set :scm, :subversion
===== Using a Git public repository =====
If your application is stored on a Git public repository, use the following settings
set :repository,
set :scm, :git
set :branch,
For example:
set :repository, "git://github.com/GitAccount/myproject.git"
set :scm, :git
set :branch, "master"
By the way, if you're on one of our older Dapper boxes, you either have an older version of git installed (which the gem will not work with) or none at all. However, we have a package of git 1.5 in our repository; all you need to do is to install it:
sudo apt-get install git-core
===== Using a private Subversion repository =====
If you have a password protected svn directory that your Brightbox can see, set the scm up as follows:
set :repository, "svn:///"
set :scm, :subversion
set :scm_username,
set :scm_password,
When you have a repository like this, it may be a good idea to have a user setup that has read only access to the repository and use this for deployment. Then you can put the '':scm_username'' and '':scm_password'' entries in your ''~/.caprc'' file and they will be picked up for all your deployments.