views:

99

answers:

1

I'm learning to use vlad the deployer and I've got a question.

Since I'm still learning I don't know what is pertinent to the question and what isn't, so please bear with me if I'm a little verbose.

I've got 2 environments for a new application (test and production) besides my development machine.

I've figured out this way to do the initial setup in my vlad.rake:

namespace :test
  task :set
    set :domain, 'test.myserver.com'
  end
end

namespace :production
  task :set
    set :domain, 'www.myserver.com'
  end
end

This way I can have environment-specific stuff inside the namespaces, and still have shared tasks. For example, this would be the initial setup for test:

rake vlad:test:set vlad:setup vlad:update

This creates the following folders on my test server:

releases/
scm/
shared/
current -> symlink to last release (inside the releases folder)

My question is: what's the point of the scm folder?

Every time I do vlad:update, the following happens:

  1. svn checkout on the scm/ folder above
  2. svn export on the /releases/{date} folder
  3. update current symlink

So scm is a copy of my repository... but then there's an "export" copy of the repository on /releases/{date}. And that is the one used by the application... scm doesn't seem to be used by anyone?

Wouldn't I be just fine without the scm folder?

A: 

I'll answer myself on this one:

The scm folder seems to be included as a "docummentary". It isn't really used in the application and it isn't really needed.

But since removing it from the vlad:update action is a bit troublesome, and it takes only several seconds to execute, it is simpler to just leave it there.

If anyone has a better explanation, I'll gladly grant them the correct answer :)

egarcia