Шеф не будет проверять ветку разработки от git - PullRequest
9 голосов
/ 03 апреля 2012

Ниже приведен мой код для проверки моего репо.Я хочу, чтобы в моей среде шеф-поваров была ветка разработки.

git "/home/ubuntu/workspace/repo" do                            
    repository "git@github.com:me/repo.git"
    revision "development"                                 
    action :sync                                     
    user "root"                                                                  
end

когда я смотрю на ветку оформления заказа, я получаю:

* deploy
  master

если я запускаю git checkout development на коробке, я получаю:

deploy
* development
  master

Итак.... как мне получить git для проверки моей ветки dev от шеф-повара?

Я использую пример из wiki шеф-повара. chef wiki git example

if node.chef_environment == "QA"
    branch_name = "staging"
else
    branch_name = "master"
end

git "/home/user/deployment" do                            
    repository "git@github.com:gitsite/deployment.git"
    revision branch_name                                  
    action :sync                                     
    user "user"                                    
    group "test"                                      
end

Ответы [ 5 ]

11 голосов
/ 15 июля 2012

Ваша ветка разработки развернута.Он назван только deploy, потому что chef проверяет локальную ветвь вместо отдельного заголовка.

Поставщик git

Вот выдержка из фактического кода:

#File: chef-0.10.8/lib/chef/provider/git.rb
def checkout                                                              
  sha_ref = target_revision                                               
  # checkout into a local branch rather than a detached HEAD              
  shell_out!("git checkout -b deploy #{sha_ref}", run_options(:cwd => @new_resource.destination))
  Chef::Log.info "#{@new_resource} checked out branch: #{@new_resource.revision} reference: #{sha_ref}"
end

Вы также увидите информационные сообщения в журнале вашего клиента-шеф-повара, из которых можно увидеть развернутую ветку:

[Sun, 01 Jul 2012 18:07:40 +0200] INFO: git[/usr/local/rbenv] checked out branch: master reference: 6778c8e905d774d4dc70724c455e6fcff4c1d3e1

Документация

Кроме того, ссылка на документы в вашемВопрос ясно говорит:

Имейте в виду, что если вы используете команду «git status» после запуска этого рецепта, она вернет имя ветви как «deploy» независимо от того, как это значение по умолчанию.Вы сможете увидеть, как он проверяет правильную ветвь, когда вы запускаете chef-client с отладкой:

sudo chef-client -l debug

Дополнительная информация об отдельном HEADсостояние можно найти, например, в блоге AlBlue 1023 *

3 голосов
/ 29 октября 2015

для тех, у кого все еще есть проблемы с этой проблемой, вы можете использовать enable_checkout для false.Это оставит вашу ветку на master и не сломается, когда вы установите checkout_branch на master.

git "/home/user/deployment" do
   repository "git@github.com:gitsite/deployment.git"
   revision branch_name
   checkout_branch branch_name
   enable_checkout false
   action :sync
   user "user"
   group "test"
end
3 голосов
/ 22 июля 2014

Согласно странице ресурса git в документах шеф-повара: http://docs.opscode.com/resource_git.html

Используйте следующий атрибут:

checkout_branch

Use to specify the name of a branch to be checked out. Default value: deploy.

Итак, вы хотели бы сделать это:

git "/home/ubuntu/workspace/repo" do                            
    repository "git@github.com:me/repo.git"
    revision "development"                                 
    checkout_branch 'development'
    action :sync                                     
    user "root"                                                                  
end
0 голосов
/ 28 декабря 2013

Если вам нужно вернуться в исходную ветку разработки (например, вы используете chef deploy для подготовки своего приложения, но вы вносите изменения на месте и хотите зафиксировать свои изменения), вы можете сделать следующее

git push origin deploy:development
0 голосов
/ 16 августа 2012

как сказал fooforge:

Обычно шеф-повар скажет

git checkout -b deploy remote/branch

, если вы сделаете git log, вы увидите коммиты.

...