Введение
Если вы занимаетесь разработкой внутреннего или внешнего продукта, рано или поздно вы начинаете все больше осознавать важность сохранения истории развития вашего продукта. Важно осознавать причинно-следственные связи этого развития. Иногда вам хочется понять, как именно были реализованы требования. Иногда наоборот - глядя на реализацию хочется понять, каковы были требования, кто их сформулировал и почему. Хранилище 1С является одним из связующих элементов хранения истории развития конфигурации. Помещая набор изменений в хранилище, в комментарии указывается связывающая информация, например, номер задачи из системы учета задач.
Суть проблемы - хранилище 1С иногда подводит, и лучше немного перестраховаться. Не буду голословным, наша команда потеряла историю изменений, потому что отказало хранилище. Времени разбираться в таких случаях обычно нет, и поэтому создается новое хранилище. Появляются долгосрочные планы по восстановлению поломанного старого хранилища. В нашем случае планы так планами и остались.
Gitter
Gitter - это конфигурация для автоматизации процесса выгрузки изменений из хранилища 1С в систему версионирования Git. Gitter призван повысить надежность хранения истории ваших изменений.
Начиная с версии 1С 8.3 появилась возможность выгружать конфигурацию в набор файлов, что позволяет использовать сторонние инструменты по версионированию изменений. Git является одним из таких инструментов.
Не знаете что такое Git? Начните с официального сайта http://git-scm.com, там вы найдете программы-клиенты, книгу на русском языке (http://git-scm.com/book/ru), а так же много другой информации.
В основе Gitter нет чего-то сложного, используется командная строка Git и пакетный режим 1С.
Плюсы
- Повышение надежности.
Помимо локального репозитория Git, в который выгружаются изменения из хранилища, есть возможность выгрузки в удаленные репозитории Git. Например, можно использовать такие ресурсы как github.com или bitbucket.org. Последний имеет возможность бесплатного размещения приватных репозиториев. В свою очередь с удаленных репозиториев можно синхронизировать изменения в любое количество локальных репозиториев. При правильной организации процесса потерять историю изменений просто невозможно.
- Аналитические возможности.
Очень часто для того, чтобы оставить след в истории разработки конфигурации, мы указываем в коде комментарии, содержащие автора, дату, номер задачи. Так или иначе это снижает "чистоту" кода, заставляет вводить регламенты, описывающие то, как следует комментировать код, т.е. в целом усложняет процесс разработки.
Git blame, по моему мнению, позволяет забыть о лишних комментариях. Достаточно оставлять содержательный комментарий при помещении изменений в хранилище. Я создал небольшую демонстрационную конфигурацию, которую выгрузил с помощью Gitter в публичный репозиторий GitterDemo. Здесь видно кто и что добавлял в модуле менеджера справочника "Номенклатура". А здесь видно кто и каким commit-ом добавил в справочник "Номенклатура" реквизит "Цена".
- Простота внедрения.
У вас много разработчиков в команде? Вы используете хранилище для разработки?
Ничего не меняйте, продолжайте использовать хранилище, но дополнительно организуйте выгрузку изменений в репозитории Git.
- Открытость.
Gitter является открытым инструментом. Вы всегда можете реализовать недобходимые для вас доработки.
Особенности текущей реализации
Особенностей сейчас на самом деле много, все и не осознать. Из очевидных мне:
- Проверка работоспособности под linux не производилась
- Не было попыток проверки работоспособности в клиент-серверном варианте с использованием регламентных заданий
- Работает только с версией 1С 8.3
Любые другие особенности, о которых, я надеюсь, вы мне расскажете.
Пошаговая инструкция
Для того чтобы вам было проще ознакомиться с Gitter я написал пошаговую инструкцию. В данной инструкции вы можете ознакомиться с тем, как настроить Gitter и другие вспомогательные компоненты.
Заключение
Надеюсь, Gitter будет вам полезен.
Спасибо за внимание.