So, to address your query, it looks like this - say you deploy to `/u/apps`
the structure in there looks something like:

/u/apps/whatever.com/releases/
/u/apps/whatever.com/releases/<timestamp>
/u/apps/whatever.com/releases/<timestamp>
/u/apps/whatever.com/releases/<timestamp>
/u/apps/whatever.com/releases/<timestamp>
/u/apps/whatever.com/releases/<timestamp>

Where the timestamp is the date with the punctuation removed like
20101805210300 - each time you deploy this is generated, and your app is
checked-out into it from Git (ok, there are optimisations.)

So naturally if your images aren't in the Git repository, they won't make it
into the release directory, as it is commonly known. Finally, assuming you
have no errors, the directory `/u/apps/current`, isn't actually a directory
- it's a symlink to the most recent successful release.

To bypass the problem of resources that aren't version controlled (pid
files, log files, uploads, etc) there's a shared directory, so it looks
something like this:

/u/apps/whatever.com/releases/
/u/apps/whatever.com/releases/20101005153405
/u/apps/whatever.com/releases/20101805210300
/u/apps/whatever.com/current                               @=>
/u/apps/releases/20101805210300
/u/apps/whatever/shared
/u/apps/whatever/shared/pids
/u/apps/whatever/shared/tmp
/u/apps/whatever/shared/log

The shared directory are then linked from the release directory, so they
`persist` between deploys.

The reason it this works this way is so that if during a deploy something
goes wrong, there's no problems to just abort, and throw away the directory
we were just working in, and  never change the symlink to the new directory.

Any clearer?

-- 
* You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
* To post to this group, send email to [email protected]
* To unsubscribe from this group, send email to 
[email protected] For more options, visit this group at 
http://groups.google.com/group/capistrano?hl=en

Reply via email to