Capistrano и Git, Разрушая мою жизнь. “Не мог разрешить пересмотр для [ГОЛОВЫ] на репозитории …”

Я искал все соответствующие проблемы Capistrano, но не мог найти что-то, что даже объяснило что-либо здесь для меня.

git version 1.6.4.2
Capistrano v2.5.10

В основном, когда я выполняю свое ограничение deploy.rb сценарий, оно соединяется с сервером, начинает выполнять deploy:update задачу, затем в deploy:update_code задаче:

    *** [deploy:update_code] rolling back
  * executing "rm -rf /home/user_name/public_html/project_name/releases/20091223094358; true"
    servers: ["project_name.com"]

Это перестало работать со следующей ошибкой:

/Library/Ruby/Gems/1.8/gems/capistrano-2.5.10/lib/capistrano/recipes/deploy/scm/git.rb:231:in `query_revision': Unable to resolve revision for 'master' on repository 'ssh://git@slice_ip:path_to_git_repository'. (RuntimeError)

Вот мой развертывать сценарий, я попробовал включая и исключение:

набор: ответвление 'ведущее устройство'

Я также просто думал, что мой путь к репозиторию был выключен, но я попробовал примерно каждую перестановку (абсолютный, не абсолютный, .git суффикс, никакой суффикс). Существует определенно пустой репозиторий мерзавца в пути, на который я указываю.

** У меня действительно есть несколько проектов, размещаемых на одной части. Другие проекты являются также проектом направляющих, но выполняют SVN. Развертывание Capistrano хорошо работает.

Любые указатели в правильном направлении или любые идеи помогли бы уменьшить объем питья, я - планирование выполнения, если я не могу понять это. (Пути / дюйм/с запутал, не взламывайте меня брат!)

set :application, "project1"
set :user, "username"
set :repository,  "ssh://git@67.24.9.133/home/git/project1.git"
set :branch, "master" 

set :port, 696969

set :deploy_to, "/home/username/public_html/#{application}"

set :scm, :git

role :app, application                    
role :web, application                    
role :db,  application, :primary => true 

# deployment via remote client (workstation)
set :deploy_via, :copy 
set :runner, user

# mod_rails
namespace :deploy do
  desc "Restarting mod_rails with restart.txt"
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "touch #{current_path}/tmp/restart.txt"
  end

  [:start, :stop].each do |t|
    desc "#{t} task is a no-op with mod_rails"
    task t, :roles => :app do ; end
  end
end

Это было самым соответствующим сообщением (чрезвычайно релевантный даже), но я не мог действительно выяснить то, что они говорили, что фиксация. Я являюсь довольно новым с мерзавцем / capistrano конфигурации.

https://capistrano.lighthouseapp.com/projects/8716/tickets/56-query_revision-unable-to-resolve-revision-for-head-on-repository

5
задан ajhit406 23 December 2009 в 10:05
поделиться

4 ответа

Хорошо, похоже, я все исправил.

В основном, так как у меня 2 отдельных репозитория на удалённом сервере, я думаю, что пользователь "git" не справился, потому что я не зарегистрировал ssh пару ключей для пользователя git'а. Это объясняет, почему один из моих скриптов с deployment.rb работал корректно, а этот - нет.

В ссылке, которую я разместил в вопросе, один из комментаторов указал на проблему:

https://capistrano.lighthouseapp.com/projects/8716/tickets/56-query%5Frevision-unable-to-resolve-revision-for-head-on-repository

Обратите внимание, что эта ошибка также отображается, если вы используете несколько клавиш github на http://capistrano.lighthouseapp.... и у вас нет этих ключей и соответствующая запись в вашем .ssh/config на рабочей станции ты откуда идут эти операции. Так что... "Я-далеко" управляется на месте. Есть ли способ ссылки на репозиторий по github.com для этого запроса в то время как варианты удалённого развёртывания git@github-project1:user/project1.git

Также смотрите следующую ссылку для получения более подробной информации, так как весь вопрос ssh будет применим, даже если вы не используете github.

http://github.com/guides/multiple-github-accounts

4
ответ дан 14 December 2019 в 19:15
поделиться

Мне кажется, что развертывание Capistrano с Git работает только при установке set: copy_cache, true

0
ответ дан 14 December 2019 в 19:15
поделиться

И ваша рабочая станция, и ваш сервер должны быть в состоянии связаться с репозиторием по указанному адресу, если нет, то вы можете установить :local_repository - как получить к нему доступ с вашего рабочего стола, и :repository - как получить к нему доступ с ваших серверов.

.
1
ответ дан 14 December 2019 в 19:15
поделиться

Я использовал capistrano с git'ом только один раз, но никогда не использовал и не видел использования ssh:// в определении репозитория.

Попробуйте использовать set :repository, "git@67.24.9.133/home/git/project1.git" вместо

.
0
ответ дан 14 December 2019 в 19:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: