Часть 1. Как подключиться к команде разработки и начать использовать Git (эта статья)
Вводная, или куда послать 1С-ника, не знающего Git
Регистрация на GitHub, GitLab и BitBucket
Установка дополнительных библиотек OScript
Подключение к проекту и создание локального репозитория
Клонирование репозитория с BitBucket
Клонирование репозитория в SourceTree
Клонирование репозитория с GitLab
Часть 2. Реализация Git workflow в 1С-разработке по шагам
Предисловие
Несмотря на то, что еще в 2015 году в версии платформы 8.3.6 появилась возможность раскладывать конфигурацию в исходные файлы, до сих пор лишь малая доля команд разработчиков 1С используют Git в своей повседневной деятельности. Причин тому несколько, и здесь мы не будем на них останавливаться. Моя главная цель: популяризировать командную разработку на Git в мире 1С и понизить порог вхождения в нее наших коллег. Как раз этому посвящена данная серия статей, и перед вами - первая из них. Итак, поехали!
Но для начала...
Вводная, или куда послать 1С-ника, не знающего Git
Меня часто спрашивают, с чего начать изучение Git и как безболезненно перейти с хранилища на использование системы контроля версий (СКВ)? Отвечаю на первую часть вопроса.
Для тех, кто совсем не знаком с СКВ Git или чувствует свою неуверенность при работе с ним, рекомендую изучить следующие источники (именно в таком порядке):
Простой пошаговый учебник-самоучитель, после которого отпадёт основная масса вопросов и сомнений (изучение ок. 5 часов с практикой).
Чтобы ближе познакомиться с Git:
Если кому-то удобнее видео-формат, то рекомендую посмотреть лучший видео-курс по Git от Lynda.com.
Ну а для освоения фигур высшего пилотажа - штудируем официальную книгу. В ней же хорошо описывается суть и назначение систем контроля версий, поэтому я не буду тратить время на описание того, что такое Git, для чего он нужен и почему это круто.
Вы можете самостоятельно нагуглить и другие источники, но этого базиса вполне достаточно, чтобы после его освоения начать перевод своей 1С-команды на использование Git.
Организация рабочего места
Прежде чем начать использовать Git в 1С-разработке, необходимо выполнить установку дополнительного ПО и его первоначальную настройку. Также выполним первое подключение к Git-репозиторию. То есть, подготовим всё необходимое сразу, чтобы уже не возвращаться к этому в процессе работы.
Говоря о ПО, необходимом для работы с Git, следует отметить, что для каждой из рассмотренных ниже задач есть гораздо более широкий выбор вариантов, я опишу здесь только по одному из них. Вы же можете использовать то, что вам больше нравится или лучше подходит именно для ваших задач:
- Система контроля версий. Они, неожиданно, тоже бывают разные. Мы будем использовать Git;
- Интерфейсная оболочка для работы с Git, или т.н. Git GUI. Их разнообразие может впечатлить, о наиболее популярных можно почитать здесь. Я остановился на SourceTree от Atlassian. А вообще, можно и вовсе обойтись без нее, и выполнять все команды Git из командной строки. Но, как правило, 1С-ники не любят командную строку, им больше нравится нажимать на кнопки, поэтому займёмся установкой SourceTree;
- Git-сервер. Как правило, в корпорациях устанавливают свой собственный сервер версионирования для Git. Мы рассмотрим наиболее популярные открытые облачные сервисы (или хостинги) GitHub, GitLab и BitBucket;
- Конвертеры исходного кода 1С. OneScript, просто OneScipt;
- Редакторы кода. Эта тема вообще уходит далеко за пределы мира 1С. Просто поставьте себе Visual Studio Code, и будет вам счастье. Кстати, она же является неплохим Git GUI.
Регистрация на GitHub, GitLab и BitBucket
Чтобы иметь возможность работать с системой версионирования кода в группе разработки, прежде всего, необходимо иметь свой аккаунт на одном из хостингов Git. Очень вероятно, что такой аккаунт у вас уже есть, поэтому данная часть инструкции сделана опционально. Если нет - выбирайте, что вам больше по душе:
Установка Git
Установка Git описана для версии 2.18.0. Процесс установки и внешний вид окон для более поздних версий может немного отличаться. Запускаем скачанный с официального сайта проекта файл установки (скачать...).
Запуск установки следует выполнять под администратором и от имени администратора (это важно!!!). На первом шаге нажимаем "Next >", на втором шаге "Выбор компонентов" оставляем всё по умолчанию, и тоже жмём "Next >".
На 3-м шаге мастер установки предлагает выбрать редактор по умолчанию, который будет работать с Гитом. Тут вы вольны выбрать то, что вам больше нравится использовать для редактирования текстов. Но я настоятельно рекомендую присмотреться к Visual Studio Code.
Идём далее, и на следующих трёх шагах оставляем все настройки по умолчанию.
На 7-м шаге оставляем выбор по умолчанию консоли Windows для работы с Git Bash. На последнем шаге также ничего не меняем и запускаем установку.
Процесс установки займёт какое-то время, после чего появится финишное окно, на котором нажимаем Finish.
На этом установка Git завершена, однако перед началом его использования необходимо единожды выполнить некоторые глобальные настройки системы контроля версий.
Первоначальная настройка Git
Все команды будем выполнять из командной строки. Если во время установки Git у вас была запущена командная строка, перезапустите её.
Внимание! Командную строку следует запускать под администратором, чтобы избежать ошибок прав доступа при выполнении некоторых команд. |
Во-первых, зададим имя пользователя и адрес электронной почты, которыми будет идентифицироваться авторство коммитов в репозитории Git:
git config --global user.name "Your Name"
git config --global user.email "your_email@whatever.com"
Во-вторых, установим настройки правил коммита окончаний строк, это в дальнейшем поможет избежать ошибок при коммите изменений в исходных файлах конфигураций 1С:
git config --global core.quotepath false
git config --global core.autocrlf false
git config --global core.safecrlf false
Внимание! Ключ core.autocrlf влияет на кроссплатформенные приложения. Поэтому, если есть необходимость коммитить с этой же машины код, который должен работать под Mac/Linux, необходимо проявлять осторожность. Например, задавать значение параметра не глобально для всей СКВ Git, а для каждого репозитория в отдельности. |
Установка SourceTree
Установка SourceTree описана для версии 2.6.9. Процесс установки и внешний вид окон для более поздних версий может немного отличаться. Запускаем скачанный с официального сайта Atlassian файл установки (скачать...).
На первом шаге соглашаемся с лицензионным соглашением и нажимаем "Вперёд".
На этом этапе SourceTree требует ассоциации с аккаунтом Atlassian (появляется после регистрации на BitBucket). Можно либо указать свой существующий аккаунт (должен быть зарегистрирован до установки программы), либо выбрать вариант регистрации нового аккаунта, тогда SourceTree поможет пройти необходимые шаги регистрации и произведёт ассоциацию с новым аккаунтом. Далее рассматривается вариант, когда аккаунт на BitBucket уже зарегистрирован, и нам остаётся только к нему подключиться.
Выбираем вариант "Учетная запись Atlassian":
Появится окно авторизации, в котором указываем логин и пароль нашего аккаунта и нажимаем "Log in". После верификации учётной записи появится окно с сообщением об успешной авторизации. Идём "Вперёд":
При установке SourceTree можно автоматически установить и сам Git, если на следующем шаге указать соответствующий флажок. Если у вас еще не установлен Git, можете сделать это сейчас. После нажатия кнопки "Вперёд" скачан и установлен Git, что займёт некоторое время, затем появится окно об успешном завершении установки:
На последнем шаге можно загрузить SSH ключ, если таковой имеется. Мы пока пропустим этот шаг и нажмём "Нет":
Сразу после этого откроется главное окно SourceTree, готовое к работе:
Установка OneScript
Установка OneScript (он же OScript, он же 1Script) описана для версии 1.0.20. Процесс установки, состав устанавливаемых компонент и внешний вид окон для более поздних версий может немного отличаться. Запускаем скачанный с официального сайта файл установки (скачать...).
Сама установка состоит всего из двух шагов, на каждом из которых оставляем всё по умолчанию и нажимаем "Next >" (на первом), "Install" (на втором), затем немного ждём, когда программа установится и в последнем окне нажимаем "Finish". Установка завершена!
Установка дополнительных библиотек OScript
Возможности OneScript легко расширяются путём установки дополнительных библиотек из серии oscript-library. Вы также можете написать собственную библиотеку, если возможностей существующих недостаточно. Как это сделать, подробно описано здесь.
Установить дополнительные библиотеки можно с помощью менеджера пакетной установки opm, который у вас только что установился вместе с OneScript. Для работы с 1С, в общем случае, пригодятся следующие библиотеки:
Precommit1C - при коммите в git-репозиторий изменений внешних отчётов, обработок или расширений конфигураций автоматически раскладывает их на исходные файлы. Это позволяет, во-первых, видеть авторство и причины изменений каждой строчки кода, а, во-вторых, не тратить время на самостоятельный разбор в исходные файлы и не ломать голову, куда их положить и как структурировать;
Устанавливаем:
opm install precommit1c
Установка oscript-библиотеки считается успешной, если библиотека сама стала вызываться из командной строки как самостоятельное приложение, например:
precommit1c --help
Gitsync - занимается разбором конфигурации 1С из хранилища в исходные файлы для версионирования.
opm install gitsync
Packman - для обратной сборки файла конфигурации из исходных файлов из репозитория Git.
opm install packman
Deployka - содержит набор функций для поставки изменений конфигураций в тестовые и рабочие контуры. Подробную информацию о возможностях и порядке использования "деплойки" можно почерпнуть из вебинара, а здесь познакомиться с практическим примером ее применения.
opm install deployka
Установка Visual Studio Code
Установка VS Code описана для версии 1.27.2. Процесс установки, состав устанавливаемых компонент и внешний вид окон для более поздних версий может немного отличаться. Запускаем скачанный с официального сайта файл установки (скачать...).
Первые 4 шага стандартные и не представляют особого интереса: соглашаемся с лицензионным соглашением, указываем папку для установки и т.п. Нажимаем везде "Далее".
На следующем шаге выбираем настройки среды "под себя": необходимость добавить быстрый переход в VSC из контекстного меню файла или каталога, а также зарегистрировать VSC в качестве редактора по умолчанию для поддерживаемых типов файлов. При установке последней, для использования в VS Code будут зарегистрированы расширения файлов наиболее популярных языков программирования и конфигурационных файлов сред разработки. Для нас среди них представляют интерес *.feature и *.md. Если вам не нужна регистрация для всего "зоопарка" файлов, которые никогда не будут использованы, можете не ставить эту галку, но после установки не забудьте зарегистрировать для VS Code эти расширения. А также расширение *.bsl (по умолчанию не ставился) для редактирования текстов модулей 1С.
После нажатия "Далее", останется согласиться с выбранными параметрами, запустить установку и дождаться ее окончания.
Установка плагинов
Прелесть VS Code заключается в том, что его функционал можно гибко расширять и настраивать с помощью плагинов (или расширений). Существует бесчисленное множество плагинов для различных языков программирования (и не только программирования) и удобства работы с отдельными инструментами, в том числе и для языка 1С.
Чтобы установить плагин, в главном окне VS Code открываем раздел "Расширения" и строке "Поиск расширений в Marketplace" набираем "bsl".
Среди найденных плагинов выбираем "Language 1C (BSL)" от известной нам команды коллег, и нажимаем на кнопку "Установить".
После достаточно быстрой установки, останется нажать появившуюся кнопку "Перезагрузка", и действие плагина вступит в силу. Теперь при редактировании кода модуля на языке 1С мы получаем полноценную раскраску синтаксиса и работу контекстной подсказки при наборе точки или скобки. Всё как в конфигураторе, только еще лучше :) - попробуйте сами!
Как видно из рисунка, по щелчку на плагине, в рабочей области VSC появляется описание с инструкциями по использованию, что очень удобно при знакомстве с новыми плагинами.
В дальнейшем, вы непременно захотите продолжить улучшение рабочей среды с помощью плагинов. Подборка наиболее интересных из них находится здесь.
Подключение к проекту и создание локального репозитория
Теперь, когда весь необходимый софт установлен, самое время перейти к созданию своего первого репозитория Git. В зависимости от формата проекта и способа взаимодействия в команде, существует несколько способов подключить у себя репозиторий.
В большинстве случаев, при начале работы в команде, использующей Git, вам предстоит клонировать репозиторий с Git-сервера. Если репозиторий на сервере является публичных, то можно смело приступать к операции. Если же он приватный, то прежде необходимо запросить у владельца или мастера репозиторий выдать вам права доступа. При этом, если предполагается в дальнейшем выполнять коммиты (фиксировать свои изменения), то должны быть права разработчика, Для возможности клонирования достаточно иметь право на чтение.
Клонирование репозитория с BitBucket
Откройте страницу репозитория, нажмите кнопку «Клонировать» и скопируйте появившийся путь к репозиторию.
Клонирование репозитория в SourceTree
Далее, в SourceTree нажимаем кнопку с плюсиком в строке закладок и выбираем вариант Clone (Клонировать).
Вставляем скопированный путь в поле «Исходный путь/URL», указываем каталог для хранения локальной копии репозитория в графе «Целевой путь» и название нового репозитория. При необходимости можно дополнительно разделить репозитории на тематические группы, название группы выбираем в поле «Local Folder».
Нажимаем кнопку «Клонировать», и после завершения процесса клонирования (время зависит от объема репозитория) мы получим у себя локальную копию репозитория проекта, готового к работе.
Установка Precommit1C
Для реализации первого кейса нам предстоит версионировать внешние отчеты, обработки и расширения конфигураций. Но хранить их "как есть" не очень хорошо, поскольку в таком случае мы не увидим вносимых изменений и не сможем их проанализировать. Для решения этой задачи, у перечисленных объектов есть функция выгрузки в файлы. Но каждый раз нажимать эту кнопку и вспоминать, в какую папку их положить, чтобы ничего не нарушить, - тоже не хорошо. Эту операцию следует автоматизировать, и делать мы это будем с помощью Precommit1C.
Precommit1C – это хук для автоматической выгрузки в исходные файлы внешних отчётов/обработок и расширений конфигураций. Его использование позволяет полностью отвлечься от рутинной операции выгрузки в исходные файлы, принятия решения о месте расположения этих самых исходников, и возложить эту работу на инструмент автоматизации.
Подробно о работе Precommit1C можно узнать из первых 30 минут вебинара, также подробная инструкция находится на главной странице репозитория инструмента.
Установку Precommit1C можно произвести несколькими способами, рассмотрим два из них.
Вариант 1. Клонирование репозитория инструмента
Заходим на сайт проекта, находим кнопку «Clone or download» и копируем путь к репозиторию.
Далее, в SourceTree добавляем новый репозиторий аналогично тому, как мы это делали для основного репозитория проекта (см. раздел "Клонирование репозитория в SourceTree). Из локального репозитория Precommit1C копируем следующие файлы и папки:
- pre-commit
- v8Reader
- v8files-extractor.os
- tools
и вставляем их в папку hooks, которую необходимо создать в каталоге “.git” корня репозитория.
Вариант 2. Установка через opm
Устанавливаем пакет:
opm install precommit1c
Устанавливаем хук в каталог проекта:
cd c:\dev\repo\sed
Precommit1c --install
Клонирование репозитория с GitLab
.Процесс клонирования репозитория с GitLab, пожалуй, самый простой из всех, поскольку ссылка-путь и кнопка для ее копирования находятся непосредственно на главной странице проекта. Поэтому просто копируем этот путь и далее повторяем шаги, описанные в разделе "Клонирование репозитория в SourceTree".
Форкаем интересные проекты на GitHub
Когда мы хотим присоединиться к OpenSource-проекту, размещённому на GitHub, то тут процесс подключения к проекту несколько отличается. Поскольку доступа к прямому коммиту в оригинальный проект нам никто не даст, необходимо сначала создать в своём аккаунте репозиторий-потомок оригинала (т.н. fork). Затем выполнить клонирование в локальную копию уже своей копии-потомка и выполнять разработку уже в нём. Затем, для того чтобы поделиться новым полезным функционалом с сообществом, мы будем выполнять запросы на слияние (т.н. pull request).
На странице интересующего проекта нажимаем кнопку fork, дожидаемся появления нового репозитория в своём аккаунте и далее выполняем его клонирования согласно описанию в разделах "Установка Precommit1C" и "Клонирование репозитория в SourceTree".
Заключение
На первый взгляд может показаться, что объем работы и количество ПО, с которым предстоит работать, пугающе большое. Но после того, как вы настроите у себя пару первых репозиториев, дальше дело пойдёт "как по маслу".
А уже в следующей статье мы рассмотрим, как выполнять отдельные операции в работе на проектом: взять задачу в работу, зафиксировать результат в основном стволе разработки, исправить ошибку в коде и другие действия, из которых состоит повседневная жизнь разработчика. Удачи!