Я использую python для написания ловушки после получения, которая, как мы надеемся, послужит для автоматического развертывания всех обновленных файлов в моем проекте.По сути, каждый раз, когда нажимается ветка «deploy», она загружает измененные файлы по FTP на мой сервер.
Вот что у меня есть:
def deploy(old, new):
fileList = subprocess.Popen(['git', 'diff', '--name-only', old, new], stdout=subprocess.PIPE)
files = fileList.stdout.read().split('\n')[:-1]
# Switch to the regular repository and pull to it.
os.chdir("/home/git/testrepo")
subprocess.Popen(['git', 'pull'], cwd="/home/git/testrepo")
for file in files:
print file
for line in sys.stdin.xreadlines():
old, new, ref = line.strip().split(' ')
if ref == "refs/heads/deploy":
print "Deploying the new commits now."
deploy(old, new)
else:
print "No need to deploy."
Репозиторий, содержащийэтот крючок является пустым хранилищем.Затем у меня есть другой репозиторий под /home/git/testrepo/
, который является клоном этого репозитория.
В этом коде я пытаюсь изменить свой рабочий каталог на этот репозиторий, а затем инициирую извлечение.Это, однако, не работает.Вместо этого я получаю следующее сообщение, когда нажимаю и выполняю ловушку: "fatal: не git-репозиторий: '.'".
Любые идеи о том, как я могу успешно потянуть в этот репозиторий, чтобызатем загрузить свои файлы на другой сервер?Каждый метод, который я попробовал, потерпел неудачу.