Особенности работы с Git
Glossary Item Box
Общие сведения
Основное отличие Git от любой другой СКВ (включая Subversion ) — это подход Git к работе со своими данными. Концептуально, большинство других систем хранят информацию в виде списка изменений в файлах. Эти системы (CVS, Subversion, Perforce, Bazaar и т.д.) представляют хранимую информацию в виде набора файлов и изменений, сделанных в каждом файле, по времени (обычно это называют контролем версий, основанным на различиях).
Git не хранит и не обрабатывает данные таким способом. Вместо этого, подход Git к хранению данных больше похож на набор снимков миниатюрной файловой системы. Каждый раз, когда вы делаете коммит, то есть сохраняете состояние своего проекта в Git, система запоминает, как выглядит каждый файл в этот момент, и сохраняет ссылку на этот снимок. Для увеличения эффективности, если файлы не были изменены, Git не запоминает эти файлы вновь, а только создаёт ссылку на предыдущую версию идентичного файла, который уже сохранён. Git представляет свои данные как поток снимков.
У Git есть три основных состояния, в которых могут находиться ваши файлы: зафиксированное (committed), изменённое (modified) и подготовленное (staged). Зафиксированный значит, что файл уже сохранён в вашей локальной базе. К изменённым относятся файлы, которые поменялись, но ещё не были зафиксированы. Подготовленные файлы — это изменённые файлы, отмеченные для включения в следующий коммит.
Подробно о том, как установить и как работать с системой контроля версий можно узнать из офицальной документации на сайте Git.
Для работы можно использовать различные GUI, предоставляющие удобный интерфейс для работы с Git, например Sourcetree, скриншоты которого использованы в статье.
Особенности работы с Git в Creatio
Встроенные инструменты Creatio предусматривают работу только с системеой контроля версий Subversion. Однако при включенном режиме разработки в файловой системе встроенный механизм интеграции с системой хранения версий отключен. Таким образом, можно использовать любую систему контроля версий, например, Git.
Последовательность действий при работе с Git
Шаг 1. Включить режим разработки в файловой системе
Чтобы включить режим разработки конфигурации в файловой системе, необходимо в файле Web.config, который находится в корневом каталоге с установленным приложением, установить значение true для атрибута enabled элемента fileDesignMode.
На текущий момент режим разработки в файловой системе (РФС) не совместим с получением клиентского контента из предварительно сгенерированных файлов. Для корректной работы с РФС необходимо отключить получение статического клиентского контента из файловой системы. Для отключения данной функциональности нужно установить значение false для флага UseStaticFileContent в файле Web.config.
<fileDesignMode enabled="true" /> ... <add key="UseStaticFileContent" value="false" />
Шаг 2. Создать пакет без привязки к хранилищу
На вкладке [Пакеты] ([Packages]) раздела [Конфигурация] ([Configuration]) в контекстном меню выбрать действие [Добавить] ([Add]) (рис. 1).
Рис. 1. — Команда добавления пакета
В появившейся карточке пакета (рис. 2) заполнить основные поля свойств пакета (см. "Создание пользовательского пакета"), не указывая название репозитория, к которому будет привязан пакет.
Рис. 2. — Карточка пакета
Шаг 3. Создать необходимые схемы в пакете
Подробно создание схем клиентского и серверного кода описано в статьях "Создание клиентской схемы", "Создание схемы [Исходный код]".
Шаг 4. Выгрузить пакет в файловую систему
Выполнить действие [Выгрузить пакеты в файловую систему] ([Download packages to file system]) (рис. 3).
Рис. 3. — Действие [Выгрузить пакеты в файловую систему]
В результате пакет будет выгружен в каталог [Путь к установленному приложению]\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\sdkPackageInFileSystem (рис. 4).
Рис. 4. — Пакет в файловой системе
Шаг 5. Добавить необходимый исходный код
Для работы с исходным кодом схем можно использовать любую удобную IDE. В статьях "Работа с клиентским кодом. Общие сведения", "Работа с серверным кодом" описана работа с кодом в IDE Microsoft Visual Studio.
Шаг 6. Зафиксировать изменения в систему контроля версий
Последовательность действий при фиксации изменений (рис.5):
- Отметить все файлы, требующие фиксации [Stage All].
- Выгрузить изменения из глобального хранилища, сделанные другими членами команды [Pull].
- Зафиксировать изменения в локальном хранилище [Commit].
- Зафиксировать изменения в глобальном хранилище [Push].
Рис. 5. — Последовательность фиксации изменений в хранилище Git
Шаг 7. Установить измененный пакет в приложение.
Для установки пакета из файловой системы в приложение в разделе [Конфигурация] ([Configuration]) необходимо выполнить действие [Обновить пакеты из файловой системы] ([Update packages from file system]) (рис. 6).
Рис. 6. — Действие [Обновить пакеты из файловой системы] ([Update packages from file system])
Шаг 8. Выполнить генерацию исходных кодов
Для этого в разделе [Конфигурация] ([Configuration]) необходимо выполнить действие [Сгенерировать для требующих генерации] ([Generate where it is needed]). Действия группы [Исходный код] ([Source Code]) описаны в статье "Разработка во встроенной IDE. Раздел [Конфигурация]".
Шаг 9. Скомпилировать изменения
Чтобы скомпилировать изменения, необходимо выполнить действие [Компилировать измененное] ([Compile modified items]). Действия группы [Конфигурация] ([Configuration]) описаны в статье "Разработка во встроенной IDE. Раздел [Конфигурация]".
Необходимость действий обновления структуры базы данных, установки SQL-скриптов и привязанных данных отображается в колонках [Требуется обновление БД] и [Требует установки в БД] дизайнеров. В случае возникновения ошибок после этих действий, текст последней ошибки можно увидеть в колонке [Текст последней ошибки].
Не все эти колонки отображаются по умолчанию в реестре вкладок [Схемы], [SQL сценарии] и [Данные] раздела [Конфигурация]. При необходимости их можно добавить при помощи команды контекстного меню [Настроить колонки].
Шаг 10. Обновить структуру базы данных
После компиляции изменений нужно обновить структуру базы данных действием [Обновить для требующих обновления] ([Update where it is needed]). Действия группы действий [Структура БД] ([Database Structure]) описаны в статье "Разработка во встроенной IDE. Раздел [Конфигурация]".
Шаг 11. Установить SQL-сценарии и привязанные данные (при необходимости)
Если пакет содержит привязанные SQL-сценарии или данные, то необходимо выполнить соответствующие действия для их выполнения или установки. Действия групп
[SQL скрипт] ([SQL script]) и [Данные] ([Data]) описаны в статье "Разработка во встроенной IDE. Раздел [Конфигурация]".
После успешной установки в приложении станет доступной реализованная в пакете функциональность.