繁体   English   中英

为什么Capistrano不从SVN签出我的代码的最新版本?

[英]Why is Capistrano not checking out the latest version of my code from SVN?

我正在使用Capistrano和Rails 2.3.4。 我已经完成了一个deploy:cold到远程服务器。 现在在我的本地盒子上,我更改了布局文件并将其提交到存储库(我将Netbeans 6用作我的IDE)。 我输入cap deploy,Capistrano会通过它的命令运行,并告诉我它已签出并部署了我的代码的最新版本。 但是,在服务器上并没有更改,当我查看布局文件时,它使用的是旧版本,而不是我刚刚提交并假定部署的版本。

任何人都经历过吗?

编辑:奇怪的是,我改变了一些图像文件,并将这些均在服务器上更新,但HTML布局我修改了没有。 可能只是Cookie的问题?

EDIT2:我检查了存储库本身(我正在使用ProjectLocker),并确定其中的代码已被修改。 问题仅在于Capistrano即使它说的确没有将其检出,也没有报告任何错误。

这是我的deploy.rb文件(当然是清理过的):

# Application
set :application, "myapp"
set :deploy_to, "/var/www/html/#{application}"

# Settings
default_run_options[:pty] = true
set :use_sudo, true

# Servers
set :user, "deploy"
set :domain, "111.111.111.111"
set :runner, "deploy"
server domain, :app, :web
role :db, domain, :primary => true

# SVN
set :repository, "http://myhosting.com/svn/myapp/trunk"
set :scm_username, "wayne@mysite.com"
set :scm_password, "secret"
set :checkout, "export"

# Passenger
namespace :passenger do
  desc "Restart Application"
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

after :deploy, "passenger:restart"

似乎有时可以正常工作。 例如,我对代码进行了一些更改,并且检查得很好。 我也有一个问题,也没有签出database.yml文件; 我被迫在服务器上对其进行编辑。

这里只是一个黑暗的镜头,但是您实际上是在查看布局文件还是您访问了网站然后查看了网页源代码?

如果您正在生产中,则将缓存布局( config.action_controller.perform_caching = true ),您需要重新启动服务器。 默认情况下,在开发模式下不会发生这种情况,因为上述设置被设置为false。

请参阅以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM