Уведомления

Группа в Telegram: @pythonsu

#1 Июль 12, 2018 00:02:53

polin11
Зарегистрирован: 2013-05-02
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

python и работа с git

Вроде бы простая задача - написать скрипт, который, выдаст автора ветки в удаленном репозитории в git'е.
Какая питоновская библиотека подойдет для этого лучше? Если кто-то заморачивался такой же задачей и у него есть результат, прошу поделиться наработками.

Офлайн

#2 Июль 12, 2018 01:22:41

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

python и работа с git

У ветки в git нет автора. Автор есть у коммита, а ветка - это просто указатель, выставленный на коммит.

polin11
Вроде бы простая задача - написать скрипт, который, выдаст автора ветки
Опиши, как ты используешь этот скрипт (как будто он есть уже). Откуда ты знаешь, какие там ветки есть?



Отредактировано py.user.next (Июль 12, 2018 01:28:31)

Офлайн

#3 Июль 12, 2018 15:48:53

polin11
Зарегистрирован: 2013-05-02
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

python и работа с git

Решил попробовать обойтить модулем subprocess, написал такой скрипт

 import os, subprocess
#клонируем репозиторий
url =  'git@git.my.ru:folder1/folder2.git'
subprocess.check_call(["git", "clone", url])
#переходим в получившийся каталог"
os.system("cd \folder2")

В каталоге много файлов, мне нужно по конкретному файлу вызвать git log
В консоле я бы сделал git log file1.txt
Как это сделать в python не могу сообразить, пробовал
 subprocess.check_call(["git", "log", "file1.txt"])
не получилось, подскажите как это делается?

Офлайн

#4 Июль 16, 2018 03:10:20

polin11
Зарегистрирован: 2013-05-02
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

python и работа с git

Ау, есть кто живой?
Разобрался с задачей при помощи клонирования репозитория,
но репозиторий достаточно большой, клонирование занимает определённое время и место на диске,
возможно ли отправить в github какой-нибудь запрос, и получить автора последнего коммита, изменившего определенный файл?

Офлайн

#5 Июль 16, 2018 03:21:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

python и работа с git

polin11
возможно ли отправить в github какой-нибудь запрос
На GitHub можно и через Web узнать это. Но репозитории GitHub'ом не ограничиваются и по протоколу HTTPS может просто не быть доступа. Так что выкачивать репозиторий (в первый раз) или докачивать репозиторий (в последующие разы), а потом в нём искать нужную инфу - это оптимальное решение. Ты не можешь получить сводку по коммитам, запросив её у сервера, ты можешь только скачать все коммиты и поискать в них инфу. Если же сервер предоставляет другой интерфейс, типа HTTPS или другого (а такие есть), то ты можешь пробовать сначала через него получить инфу, но и этот интерфейс тоже не гарантирует, что там одно и то же веб-приложение будет, так как на HTTPS могут разные программы торчать для управления репозиториями. Так что для тебя только общий вариант подходит, так как ты не программист и программу посложнее ста строк не разработаешь ввиду отсутствия необходимых навыков проектирования.



Отредактировано py.user.next (Июль 16, 2018 03:25:54)

Офлайн

#6 Июль 16, 2018 20:48:47

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

python и работа с git

Первая ссылка в гугле: https://gitpython.readthedocs.io/en/stable/tutorial.html



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Июль 16, 2018 21:50:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

python и работа с git

Rodegast
Первая ссылка в гугле: https://gitpython.readthedocs.io/en/stable/tutorial.html
Это для работы с локальным репозиторием. С локальным репозиторием он может работать и через программу git.



Отредактировано py.user.next (Июль 16, 2018 21:50:16)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version