Как известно, месть под горячее не подают, а исходники должны быть актуальными и свежими, как утренняя роса. Между тем, развелось столько систем контроля ревизий, что страшно вспомнить. И все стремятся соригинальничать, придумывают разные команды, пишут килобайты документации... Простым людям, к коим я себя причисляю, много не надо: посмотреть, как проект развивается; какие плюшки появились в нестабильной ветке; поиграться, попробовать собрать :-) В общем, название vcs значения не имеет.
Чтобы как-то скрестить чуждые системы, решил написать скрипт, в задачи которого входит:
- Проверка каталога на наличие т. н. dotfolders
- Если таковые опознаны, применить специфическое заклинание
Поступил с разбродом и шатанием, как в своё время Дмитрий — с зоопарком архиваторов. Мне даже крупно повезло, нашёл готовое решение. Только немного упростил скрипт, убрав обход по иерархии директории. Мой вариант предназначен для запуска внутри каталога с исходными текстами. Знает в лицо subversion, mercurial, bazaar и git.
#!/usr/bin/env python """ This script update sources in current folder containing subversion, mercurial, bazaar or git. Original author: Alia Khouri - http://code.activestate.com/recipes/576853/ Changed by: Anton Yakutovich """ import os, sys def run(cmd): print cmd os.system(cmd) operations = { '.bzr': ['bzr pull', 'bzr update'], '.hg': ['hg pull', 'hg update'], '.svn': ['svn update'], '.git': ['git pull'] } contents = os.listdir(os.getcwd()) for f in contents: if f in operations: print "\nGetting updates..." cmds = operations[f] for cmd in cmds: run(cmd)
0 комментариев: ответить