Написание хитов Git в скриптах на python / bash [закрыто]

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

26
задан Ken Bloom 22 July 2010 в 18:10
поделиться

3 ответа

Здесь - пример использования Python для хука. Вообще хуки не зависят от языка. Вы используете скрипт для выполнения какой-либо работы или для выхода с кодом возврата 0 / other для изменения потока процесса git.

20
ответ дан Peter Loron 22 July 2010 в 18:10
поделиться

Я обнаружил, что на python легко написать git hook. Это пример хука после получения на питоне. Приведенный пример разворачивает основную ветку и развивает ветки в разных папках (изменения в главном устройстве будут отправлены на производственный веб-сайт, а изменения в ветке разработки будут перенесены на qa-сайт)

#!/usr/bin/env python                                                                    
# -*- coding: UTF-8 -*-                                                                  
#post-receive                                                                            

import sys                                                                               
import subprocess                                                                        

# 1. Read STDIN (Format: "from_commit to_commit branch_name")                            
(old, new, branch) = sys.stdin.read().split()                                            

# 2. Only deploy if master branch was pushed                                             
if branch == 'refs/heads/master':                                                        
    subprocess.call('date >> ~/prod-deployment.log', shell=True)                         
    subprocess.call('GIT_WORK_TREE=/home/ft/app.prod git checkout master -f', shell=True)
    subprocess.call('cd ../../app.prod;bower update', shell=True)                        

#3. Only deploy if develop branch was pushed                                             
if branch == 'refs/heads/develop':                                                       
    subprocess.call('date >> ~/dev-deployment.log', shell=True)                          
    subprocess.call('GIT_WORK_TREE=/home/ft/app.dev git checkout develop -f', shell=True)
    subprocess.call('cd ../../app.dev;bower update', shell=True)                         
5
ответ дан Roman Podlinov 22 July 2010 в 18:10
поделиться
  • 1
    Это слишком ошибочно, когда относился к таблицам. – happy_marmoset 1 September 2016 в 11:04
  • 2
    Это слишком ошибочно, когда относился к таблицам. – happy_marmoset 1 September 2016 в 11:04
  • 3
    Это слишком ошибочно, когда относился к таблицам. – happy_marmoset 1 September 2016 в 11:04
  • 4
    Это слишком ошибочно, когда относился к таблицам. – happy_marmoset 1 September 2016 в 11:04
  • 5
    Это слишком ошибочно, когда относился к таблицам. – happy_marmoset 1 September 2016 в 11:04

Примеры, которые идут с git, написаны в сценарии оболочки; в .git/hooks каждого репо есть несколько базовых и более продвинутые в /usr/share/doc/git-core/contrib/hooks.

Также есть больше информации о различных хуках, доступных через $ man githooks.

8
ответ дан intuited 22 July 2010 в 18:10
поделиться
Другие вопросы по тегам:

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