Макросы (любой другой код) + GIT

Я уже довольно давно пишу макросы (сейчас, правда, очень редко), и накопилось их у меня очень много. Мало того, что самих макросов много, так ещё и версий этих макросов предостаточно. Спустя много лет, я познакомился с GIT’ом, и теперь я жалею что не сделал этого много лет назад, что ни кто не подсказал что такое вообще есть и как это удобно.

Git — распределённая система управления версиями файлов.

Написано про него много, какой это удобный и мощный инструмент, так что тут я углубляться не буду. Просто скажу, что если вы пишите ЛЮБОЙ код, и не используете GIT, начните это делать сейчас! В будущем скажите спасибо :)

Как сейчас

“Хранилище” макросов напоминает помойку, и это при моей педантичности во всём что касается хранения информации. Почему так получилось? Тут много факторов: менялись компы, менялись диски, иногда компов было несколько и приходилось носить код туда-сюда, периодические эксперименты плодили дубли, и сейчас уже трудно вспомнить что для чего и т.д. и т.п.

Что было бы, если бы использовал GIT

Все проекты лежали бы в одном месте, например вот тут github.com и в любое время были бы доступны с любого устройства. Не было бы кучи подпапок с прошлыми версиями, с экспериментальными изменениями и тому подобным. Всегда можно было бы посмотреть что менялось в конкретное время, можно было бы, в один клик, вернуться к старой версии кода, переключиться на эксперимент и обратно и т.д. В общем, был бы порядок и сплошное удобство.

Для тех кто вдохновился

Я недавно перечислял самые ходовые комманды GIT. Там же ссылка на подробное описание.

Про макросы и GIT

Конкретно с макросами есть одна проблема — они хранятся в *.gms, а GIT лучше всего работает не с бинарными файлами, а именно с текстовыми (исходным кодом). В моём случае, т.к. мне нужно только хранение старого кода и логов изменения, проблема решается экспортом кода в текстовые файлы. Для этого я написал небольшой макрос, который экспортирует модули, формы и классы в соответствующие текстовые файлы *.bas, *.frm и *.cls. Именно их и следует скармливать GIT’у.

Исходники + GMS

Исходный код макроса (с помощью которого этот код и был экспортирован) доступен в публичном репозитории. Там же, можно скачать и готовый *.gms файл.

Если у вас есть идеи как его улучшить, можете присылать пул реквесты ;)