Как привязать к SVN не связанный с хранилищем пакет
Glossary Item Box
ВАЖНО
Привязать не связанный с хранилищем существующий пакет к SVN можно только в приложении, установленном on-site. Работать с таким пакетом можно только в режиме разработки в файловой системе.
К СВЕДЕНИЮ
После привязки пакета к SVN в файловой системе его можно установить в другое приложение, используя встроенные средства bpm'online (см. "Установка пакета из хранилища").
Общие сведения
Несложная пользовательская функциональность bpm'online, как правило, разрабатывается одним разработчиком. Зачастую пользовательский пакет, в котором выполняется разработка, не связан с хранилищем системы управления версиями (SVN).
С увеличением сложности функциональности возникает необходимость в увеличении количества разработчиков, и, следовательно, в использовании SVN.
Последовательность привязки существующего пакета к хранилищу:
1. Перейти в режим разработки в файловой системе.
2. Выгрузить пакет в файловую систему.
3. Создать необходимые каталоги для пакета в хранилище SVN.
4. Создать рабочую копию версионной ветки пакета.
5. Зафиксировать в хранилище каталог пакета.
Альтернативный вариант привязки пакета к хранилищу — через прямой запрос в базу данных. Для этого необходимо:
1. В разделе [Конфигурация] добавить в приложение информацию о хранилище SVN.
2. Привязать хранилище к пакету. Для этого:
- В таблице SysRepository считать идентификатор записи, содержащей адрес нужного хранилища SVN.
- В таблице SysPackage в запись, содержащую имя не привязанного к хранилищу SVN пакета, в колонку SysRepositoryId добавить полученный идентификатор.
Описание примера
Привязать к хранилищу не связанный с SVN существующий пользовательский пакет UsrUnboundPackage (рис. 1).
Рис. 1. — Свойства пользовательского пакета
Доступ к хранилищу SVN можно получить по URL:
http://svn-server:8050/SDKPackages
Алгоритм реализации примера
1. Перейти в режим разработки в файловой системе
Настройка приложения для разработки в файловой системе описана в статье "Разработка в файловой системе".
2. Выгрузить пакет в файловую систему
В разделе [Конфигурация] ([Configuration]) выполнить действие [Выгрузить пакеты в файловую систему] ([Download packages to file system]) (рис. 2).
Рис. 2. — Действие [Выгрузить пакеты в файловую систему]
В результате пакет будет выгружен в каталог ..\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\UsrUnboundPackage (рис. 3).
Рис. 3. — Пакет в файловой системе
3. Создать необходимые каталоги для пакета в хранилище SVN
Чтобы создать каталоги для пакета, используя клиентское приложение для работы с SVN (например, TortoiseSvn), необходимо перейти в репозиторий и создать каталог (рис. 4), название которого совпадает с названием пакета.
ВАЖНО
Работа с SVN с помощью TortoiseSvn рассмотрена сокращенно. Подробные инструкции о работе с хранилищем при помощи TortoiseSvn доступны в документации по этому приложению.
Рис. 4. — Создание каталога в хранилище SVN
В созданном каталоге необходимо создать подкаталоги branches и tags, т.е. повторить плоскую структуру пакетов bpm'online. В завершение в каталоге branches необходимо создать каталог, название которого совпадает с номером версии пакета — 7.11.0 (рис. 5).
Рис. 5. — Плоская структура пакета в хранилище
К СВЕДЕНИЮ
Повторять плоскую структуру пакета в хранилище необходимо только в том случае, если в дальнейшем планируется использовать встроенные средства bpm'online для работы с SVN.
4. Создать рабочую копию версионной ветки пакета
Чтобы создать рабочую копию версионной ветки пакета, необходимо выгрузить из хранилища каталог, имя которого совпадает с номером версии пакета ([SVN Checkout...], рис. 6), в каталог пакета в файловой системе (рис. 7) и подтвердить выгрузку в существующий каталог (рис. 8).
Рис. 6. — Команда [SVN Checkout]
Рис. 7. — Выгрузка из хранилища рабочей копии версионной ветки пакета
Рис. 8. — Подтверждение выгрузки в существующий каталог
В результате каталог пакета в файловой системе ..\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\UsrUnboundPackage станет рабочей копией пакета версии 7.11.0 в хранилище (рис. 9).
Рис. 9. — Визуальное отображение связи каталога с хранилищем SVN
5. Зафиксировать в хранилище каталог пакета
Чтобы зафиксировать в хранилище все содержимое каталога пакета, необходимо выполнить команду [Add...] приложения TortoiseSVN (рис. 10, рис. 11), а затем выполнить команду [SVN Commit...] (рис. 12).
Рис. 10. — Команда [Add]
Рис. 11. — Диалог выбора элементов для добавления в хранилище
Рис. 12. — Фиксация в хранилище
В результате все содержимое пакета будет привязано к хранилищу SVN (рис. 13).
Рис. 13. — Пакет в SVN
К СВЕДЕНИЮ
Чтобы зафиксировать в хранилище SVN новые схемы пакета, необходимо повторить действия шага 5.
Альтернативный вариант реализации примера
1. В разделе [Конфигурация] добавить в приложение информацию о хранилище SVN
Если информация о нужном хранилище не добавлена в разделе [Конфигурация] приложения, то необходимо:
1. Выполнить команду [Открыть список хранилищ] ([Open list of repositories], рис. 14).
Рис. 14. — Команда [Открыть список хранилищ] ([Open list of repositories])
2. В открывшемся окне [Список хранилищ] ([List of repositories]) при помощи команды [Добавить] ([Add], рис. 15, 1) добавить необходимый репозиторий (рис. 15, 2). После этого информация о репозитории отобразится в окне [Список хранилищ] (рис. 15, 3). Затем необходимо выделить строку с информацией о хранилище и выполнить аутентификацию (рис. 15, 4).
Рис. 15. — Действия окна [Открыть список хранилищ] ([Open list of repositories])
2. Привязать хранилище к пакету
Для этого необходимо выполнить SQL- запрос в базу данных приложения. Пример SQL-запроса приведен ниже:
UPDATE SysPackage SET [SysRepositoryId] = ( select top 1 Id from SysRepository where Name = 'SDKPackages'-- Название хранилища. ) where [Name]='UsrUnboundPackage'-- Название пользовательского пакета.
Здесь "SDKPackages" — название хранилища (рис. 15, 2), а "UsrUnboundPackage" — название пользовательского пакета.
ВАЖНО
Чтобы изменения применились в приложении, необходимо выйти из приложения и войти в него повторно.
3. Выгрузить пакет в файловую систему
В разделе [Конфигурация] ([Configuration]) выполнить действие [Выгрузить пакеты в файловую систему] ([Download packages to file system]) (рис. 2). В результате привязанный к хранилищу пакет будет выгружен в каталог ..\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\UsrUnboundPackage (рис. 9).