Скрипт Система управления версиями (Рад буду, если кому-то понравится/пригодится/или хотя бы раз запустит)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Аватара пользователя
ffldove
Сообщения: 480
Статус: Keep It Simple, Stupid
ОС: RFRemix 14

Скрипт Система управления версиями

Сообщение ffldove »

Скрипт был задуман как нечто типа "Системы управления версиями" для одинокого программера, пишущего маленькие утилиты. Скрипт избавляет от нудного копирования и обзывания новых версий.

Текущие возможности:
-a (--archive) архивация
-v (--version) явное указание следующей версии продукта, либо при заданном ключе -r (--restore) откат на заданную версию
-i (--iteration) на сколько единиц повышается версия, по умолчанию = 1
-l (--lavel) на каком уровне происходит повышение версии продукта, по умолчанию = 0 (уровни считаются с конца от 0, количество уровней любое, по умолчанию 3)
-t (--testing) версия тестирования версии (альфа, бета тестирование, релиз кандидат, финальная)
-r (--restore) восстановление предыдущей версии, или при заданном ключе -v (--version) указанной версии
-h (--help) ну тут все ясно
В начало файла записываются номер текущей версии и дата создания, а также оставляется место для комментариев к версии.

Пример использования (выполняется в каталоге с папкой work и файлом info):
branch #создаст новый файл настроек info и файл истории продукта history, если таковые уже есть, версия программы увеличится на 1 на 0м уровне (то есть если была 5.4.8, будет 5.4.9)
branch -v 5.4.8 #текущая версия программы 5.4.8
branch -r -v 5.4.8 #восстановить версию программы 5.4.8
branch -r #восстановить предыдущую версию программы
branch -i 2 #версия программы увеличится на 2 на 0м уровне
branch -l 1 -i 2 #версия программы увеличится на 2 на 1м уровне (была 5.4.8, станет 5.6.0)
branch -t RC #атрибут текущей версии (было 5.4.8, стало 5.4.9RC, если нужно 5.4.8RC, следует писать branch.py -t RC -i 0)

Дополнительно:
Параметр "restory directory"
Путь к каталогу хранения версий.
Для начала с версии, например с 2.5.42.274, следует указать в файле info
version="2.5.42.274"
atribut version=""
restore version=""
atribut restore version=""

Установка:

Код: Выделить всё

cp /путь/до/branch /usr/bin
chmod a+x branch

Дальнейшие цели:
-Сделать GUI на PyGTK
-Перенести большую часть настроек в файл info
-Убирать и еще раз убирать неудачные конструкции

Очень буду рад, если кому-то понравится, кто-то воспользуется или напишет отзыв.

Собственно сам скрипт:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
I learned something today
Спасибо сказали:
MrSinister
Сообщения: 95

Re: Скрипт Система управления версиями

Сообщение MrSinister »

Вообщем-то неплохо. Легковесный аналог всем этим вашим git, svn, cvs. Совет даже не стану давать, ибо у тебя он под аватаром написан. :-)
Но всё же, GUI в последнюю очередь лучше делать.
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: Скрипт Система управления версиями

Сообщение sciko »

А нельзя ли описать преимущества такого по сравнению с уже известными системами управления версий?
Спасибо сказали:
Аватара пользователя
ffldove
Сообщения: 480
Статус: Keep It Simple, Stupid
ОС: RFRemix 14

Re: Скрипт Система управления версиями

Сообщение ffldove »

sciko писал(а):
21.01.2010 12:32
А нельзя ли описать преимущества такого по сравнению с уже известными системами управления версий?

А их нет, разве что он очень простой и маленький. Умеет только то что умеет.
Был написан для себя, git, svn, cvs не подходили из-за их громоздкости и кучи ненужных для конкретной моей ситуации функций.
Пишу несколько маленьких програмок. Сначала делал каталог с номером новой версии и писал в history номер версии и дату руками, но вскоре это надоело, в результате чего был создан маленький удобный скрипт делающий все это в одну команду.

ИМХО было бы кошунством настраивать git, svn, cvs для контроля версий в программе в 200-500 строк.
I learned something today
Спасибо сказали:
hatman
Сообщения: 1
ОС: dream linux

Re: Скрипт Система управления версиями

Сообщение hatman »

Отличная весчь. Давно искал что-то подобное.
Есть пожелания:
1. Чтобы сама база файлов могла лежать где - то (мне нужна флешка :), а я от туда тянул на винт файлы, работал с ними, а потом туда (на флешку) сливал готовую копию.
2. архивирование НУЖНО :)
Спасибо сказали:
Аватара пользователя
ffldove
Сообщения: 480
Статус: Keep It Simple, Stupid
ОС: RFRemix 14

Re: Скрипт Система управления версиями

Сообщение ffldove »

hatman писал(а):
22.01.2010 12:16
Отличная весчь. Давно искал что-то подобное.
Есть пожелания:
1. Чтобы сама база файлов могла лежать где - то (мне нужна флешка :), а я от туда тянул на винт файлы, работал с ними, а потом туда (на флешку) сливал готовую копию.
2. архивирование НУЖНО :)

Первое если я правильно понял сделал (restore directory-полный путь к каталогу хранения версий, если в рабочем каталоге не будет info файла он создасться автоматом) типа
restore directory="/home/username/src/"

До второго руки попрежнему не доходят.
ПС
Новая версия в шапке топика.
I learned something today
Спасибо сказали:
MrSinister
Сообщения: 95

Re: Скрипт Система управления версиями

Сообщение MrSinister »

Вот и пригодился твой скрипт. Я тут как раз SDL изучаю. :)
Только вот эту очепятку исправь "-l LAVEL_INCREASE, --lavel=LAVEL_INCREASE", на "level", а то глаза режет.
Спасибо сказали:
Аватара пользователя
ffldove
Сообщения: 480
Статус: Keep It Simple, Stupid
ОС: RFRemix 14

Re: Скрипт Система управления версиями

Сообщение ffldove »

MrSinister писал(а):
23.01.2010 22:46
Вот и пригодился твой скрипт. Я тут как раз SDL изучаю. :)
Только вот эту очепятку исправь "-l LAVEL_INCREASE, --lavel=LAVEL_INCREASE", на "level", а то глаза режет.

Поправил, в шапке.
I learned something today
Спасибо сказали:
Аватара пользователя
ffldove
Сообщения: 480
Статус: Keep It Simple, Stupid
ОС: RFRemix 14

Re: Скрипт Система управления версиями

Сообщение ffldove »

hatman писал(а):
22.01.2010 12:16
Отличная весчь. Давно искал что-то подобное.
Есть пожелания:
1. Чтобы сама база файлов могла лежать где - то (мне нужна флешка :), а я от туда тянул на винт файлы, работал с ними, а потом туда (на флешку) сливал готовую копию.
2. архивирование НУЖНО :)

И 1 и 2 реализованно, скрипт в шапке темы.
I learned something today
Спасибо сказали: