On Jan 23, 2007, at 2:13 AM, jeroen wrote:

> Hi Jamis,
>
> It sure is helpful info. However it doesn't completely answer my
> question. My question is more like: how can I can I make sure the
> :repository var *only* changes when I do a deploy or
> deploy_with_migrations?

What about update_code? You don't want it to change when that task is  
run? Or diff_from_last_deploy? There are actually several tasks that  
(directly or indirectly) hit the repository variable.

However, if you only want that variable to be changed ONLY for those  
two tasks, then you can implement a before hook for them:

   def set_repository_variable
     # set up the :repository variable
   end

   task :before_deploy do
     set_repository_variable
   end

   task :before_deploy_with_migrations do
     set_repository_variable
   end

Does that work for you?

>
> Just out of interest, I noticed that capistrano has a lot in common
> with rake, but it's not built on rake. Was rake not a good base for
> building deployment tasks?

Rake is actually substantially different from Capistrano "under the  
hood". Capistrano, for instance, is not dependency-directed, while  
Rake is. (e.g., in Rake, you specify the dependencies of a particular  
task, and Rake makes sure each dependency is satisfied before  
invoking the task). The only similarity between cap and rake is the  
syntax of their config files, and even that is 90% superficial (e.g.,  
the use of the "desc" and "task" keywords is about as far as the  
similarity goes).

I regret that similarity now, because of the confusion it causes, but  
as with most things, it seemed a good idea at the time. :)

- Jamis


--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---

Reply via email to