Оболочка Python для доступа к репозиториям Hg, Git и, возможно, Bazaar? - PullRequest
8 голосов
/ 10 мая 2011

Я ищу библиотеку Python, которая может выполнять базовые манипуляции с репозиториями, но не зависит от внутренней системы контроля версий.

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

Пользователи библиотеки могут сделать что-то такое:

import dvcs_wrapper as dvcs
dvcs.set_backend('hg')  # could choose 'git', 'bzr'

repo = dvcs.init('/home/me/my_repo')
repo.add('/home/me/my_repo/*.py')
repo.commit('Initial commit')
repo.push('http://bitbucket.org/....')
print('At revision %d' % repo.revision_num)

Есть ли какие-нибудь указатели на что-то подобное выше?Мои поиски в Google ничего не дают ...

Обновление : для чего я начал, я начал работать над чем-то вроде этого: код здесь с модульные тесты для хранилищ Hg.Я мог бы обойти Git и Bazaar;взносы приветствуются.

Ответы [ 2 ]

5 голосов
/ 11 мая 2011

Также есть модуль VCS , который рекламирует:

vcs - уровень абстракции над различными системами контроля версий. это разработан как многофункциональная библиотека Python с чистым API.

4 голосов
/ 10 мая 2011

Я думаю, что вам не повезло.

Существуют обертки Python для git, но согласно это качество все еще ниже оптимального.Hg и bzr являются проектами Python, но их инфраструктура совершенно иная, поэтому интеграция на уровне API не легка.Также разные SCM имеют разные принципы дизайна, что делает единую оболочку менее правдоподобной.

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

...