Copyright © 2004 Колдовский Вячеслав
Современная разработка программного обеспечения просто немыслима без использования систем контроля версий.
На рынке существует достаточно много различных программных продуктов, которые решают эту задачу, при этом, бесспорно, одним из лучших среди них является Borland StarTeam.
Этот продукт, созданный в прошлом компанией StarBase, оказался настолько хорош, что корпорация Borland приобрела StarBase и сделала StarTeam центральным компо-нентом своей новой концепции "Application Lifetime Management", полностью отказавшись при этом от какого-либо развития собственного решения Borland TeamSource, который применялся многие годы в самой Borland и поставлялся вместе с ее продуктами.
Однако определенная "чужеродность" StarTeam по отношению к продуктам Bor-land, в частности, одному из самых популярных средств разработки – Borland Delphi, несколько затрудняет эффективное использование этого инструмента.
С другой стороны, российская компания Devrace отметилась на рынке инструмен-тов для контроля версий своим продуктом Athlant, который, благодаря использованию интерфейса Microsoft SCC API поддерживает значительное число систем контроля версий и предназначен для разработчиков на Borland Delphi/C++ Builder/ModelMaker.
Эксперт для интеграции среды разработки и систем контроля версий Devrace Athlant является весьма мощным и удобным инструментом, а потому заслуженно признан лучшим среди таковых.
Цель данной статьи – кратко и доступно изложить основные действия, которые необходимо осуществить, для того, чтобы приступить к использованию Devrace Athlant 3 вместе с Borland StarTeam 5.3/5.4 и средой разработки Borland Delphi (при написании статьи использовалась Borland Delphi 7).
Материал будет полезен для начинающих пользователей продуктов StarTeam и Athlant, а также для всех тех, кто хочет быстро приступить к работе, не желая тратить длительное время на прочтение руководств и самостоятельному поиску решений для об-хода возникших "подводных камней".
Для пользователя, неискушенного в работе с системами контроля версий, при по-пытке начать свою работу с использованием Athlant и StarTeam возникнет много вопро-ов, поэтому процесс начальной настройки Athlant и StarTeam рассмотрим достаточно подробно.
Если вы решили начать работать с системой контроля версий Borland StarTeam с использованием Devrace Athlant, то после установки Athlant вы столкнетесь с неожиданной проблемой: даже, если у вас установлен и работает на компьютере клиент StarTeam, то Athlant его не обнаруживает:

Дело в том, что при установке StarTeam не предлагает автоматически установить модуль интеграции, совместимый с интерфейсом Microsoft SCC. Если вы хотите самостоятельно проверить список установленных в системе SCC-провайдеров, то сделать это можно, просмотрев в реестре следующую ветку:
[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders]
Если вы обратитесь к дистрибутиву StarTeam, то обнаружите, что интеграцию с другими приложениями (Ссылка "Borland StarTeam Integration Software") предлагается установить, посетив соответствующий раздел сайта Borland.

На странице загрузки Borland сказано, что StarTeam является 100%-совместимым с интерфейсом Microsoft SCC, однако отдельно не написано, что совместимость обеспечивает файл 53STSCC.exe и пользователь должен догадаться об этом самостоятельно. Кроме того, размер файла (31,4 Мб) тоже вас не обрадует, если только вы не являетесь обладателем высокоскоростного бесплатного доступа в Интернет.

Обратите внимание, что SCC-интеграцию для версий StarTeam 5.3 и 5.4 обеспечивает один и тот же модуль интеграции, имеющий версию 5.3. Поэтому, если вы используете StarTeam версии 5.4, то смело загружайте именно этот модуль.
В процессе установки модуля интеграции обязательно отметьте галочку "SCC API Integration", чтобы получить возможность использовать StarTeam вместе с Athlant:

После установки Athlant в главном меню Borland Delphi появится новый пункт меню с названием "StarTeam". Для того чтобы начать использовать Athlant вместе с системой контроля версий, необходимо подсоединиться к хранилищу StarTeam, вызвав пункт этого меню "Connect to Storage".
При вызове пункта меню "Connect to Storage" для текущего проекта появится диалоговое окно с запросом имени проекта, при этом вы можете открыть существующий проект, или создать новый.

После подсоединения к существующему проекту, в окне "Athlant Manager" вы сможете увидеть список файлов проекта их статус по отношению к системе контроля версий.
Для того чтобы создать новый проект StarTeam, необходимо выбрать кнопку "Create
New" в указанном диалоговом окне.
Откроется следующее окно:

Укажите имя проекта, рабочую папку и имя StarTeam-сервера. Для того, чтобы в списке StarTeam Server отображалось имя сервера, необходимо, чтобы этот сервер был зарегистрирован с помощью StarTeam-клиента, иначе необходимо зарегистрировать сервер самостоятельно, выбрав кнопку "Servers…".
Далее идет аутентификация в системе StarTeam:

После подключения к хранилищу StarTeam, необходимо вызвать Athlant Manager (команда меню StarTeam->Athlant Manager).
Мы увидим диалоговое окно следующего содержания:

Обратите внимание, что в окне отображается не просто список файлов проекта, а перечень структурных единиц проекта. Т.е., если, например, в проекте есть форма LoginForm, класс которой размещен в модуле fLogin.pas, а визуальные элементы формы в файле – fLogin.dfm, то данная форма, является структурной единицей проекта, состоит физически из двух файлов и представляется как единая составляющая проекта в окне Athlant Manager. Это преимущество системы Athlant перед автономным клиентом StarTeam предоставляет пользователю чрезвычайно удобное средство для отслеживания изменений проекта.
Статус файла "not controlled" означает, что данный файл (структурная единица проекта) не контролируется системой контроля версий, и поэтому изменения не отслеживаются.
Для того чтобы внести структурную единицу проекта в систему контроля версий, необходимо вызвать контекстное меню над именем файла и выбрать команду "Add to VCS…"

Далее откроется окно, предлагающее выбрать, какие файлы структурной единицы проекта следует внести в систему контроля версий:

Обратите внимание, что список из всех файлов, составляющих структурную единицу проекта, появится только в том случае, если вы выберете структурный элемент в окне Athlant Manager в свернутом состоянии.
Далее появится окно создания папки в хранилище StarTeam:

Рекомендуется здесь оставить все параметры по умолчанию и выбрать "OK".
Далее произойдет добавление выбранных файлов в хранилище StarTeam, а в окне Athlant Manager файлы, добавленные в систему контроля версий, получат статус "controlled".
Рекомендуется сделать эту операцию для всех файлов проекта (предварительно
выделив их в окне Athlant Manager).
Если вы хотите добавить в систему контроля версий файлы, которые не являются
частью проекта Delphi, то сделать это можно в Athlant Manager при помощи команды
"Add non-project file(s) to manager view" (кнопка на панели инструментов Athlant
Manager). После этого вы сможете внести их в систему контроля версий рассмотренным
ранее способом.
После добавления всех нужных файлов в проект, можно начать работу в системе контроля версий.
В зависимости от того, какая принята в организации парадигма управления проектом, возможны различные варианты получения доступа к файлам для внесения модификаций. Если пользователь желает модифицировать файл, то, в принципе, существует два существенно различных сценария. Либо он выгружает файл из хранилища и устанавливает на него блокировку, запрещая модификацию файла другими участниками проекта, либо он модифицирует файл без установки блокировки, запрещающей модификацию, а потом разрешает возможные конфликты при загрузке файла в хранилище, так как, возможно, кто-либо еще параллельно внес модификации в данный файл.
Как в первом, так и во втором случае, обязательная операция, которую необходимо выполнить перед началом внесения изменений в определенный файл – это произвести его выгрузку ("Check Out") из системы контроля версий.
Если вы начнете изменять файл, не осуществив предварительно операцию его выгрузки, то Athlant заботливо предупредит об этом следующим сообщением:

После того, как нужные файлы, составляющие структурную единицу проекта, будут выгружены, можно начать вносить в них изменения.
Изменения вносятся обычным способом, после чего следует сохранить файлы и осуществить
операцию загрузки в систему хранения версий. Делается это с помощью команды
"Check In", вызвать которую можно из окна Athlant Manager, либо прямо в окне
редактора кода с помощью кнопки, размещенной в верхнем правом углу редактора
со следующим изображением:
.
Осуществив операцию загрузки файлов в хранилище, разработчик замыкает цикл внесения изменений.
Одна из наиболее частых причин головных болей при работе со стандартным клиентом StarTeam состоит в том, что он не отслеживает появление новых папок проекта. Если разработчик создал в проекте новые папки и разместил в них свои файлы, то в стандартном клиенте StarTeam он должен создать эти папки самостоятельно, и только после этого StarTeam обнаружит содержащиеся в них файлы.
Если же разработчик вносит значительное число модификаций в проект и при этом забывает создать вручную новые папки, то клиент StarTeam никак не предупреждает его об их существовании, и в результате загруженная им в хранилище версия проекта становится неработоспособной по причине отсутствия нужных файлов.
Автор данной статьи считает StarTeam лучшей системой контроля версий, хотя наличие данного недостатка (существующего с самых первых версий StarTeam и не исправленного в самой последней на текущий момент версии – 5.4) просто заставляет задуматься о том, чем же могли руководствоваться разработчики StarTeam, не реализовав до сих пор столь нужную функцию.
Для решения данной проблемы обычно предлагается использовать скрипт, загрузить который можно с сайта Borland, посетив раздел StarTeam в Codecentral Borland Developer Network (скрипт зарегистрирован с именем 20521_add_new_folders.js.zip). Однако использовать этот скрипт очень неудобно: во-первых, его также не нужно забывать исполнять, а во-вторых, он работает чрезвычайно медленно и попусту расходует ценное время разработчиков.
Поэтому, что я действительно ценю в Athlant, так это то, что он заботливо предлагает вносить в хранилище системы контроля версий новые файлы проекта, независимо от того, в какой папке они будут размещены. При создании новых файлов в проекте Athlant показывает следующее диалоговое окно.

Если в процессе редактирования файла возникнет необходимость просмотреть отличия между локальной версией и версией, которая сохранена в хранилище, то можно воспользоваться очень удобным инструментом, поставляемым вместе со StarTeam – Visual Diff, вызвав его прямо из меню Athlant.

При каждой последующей загрузке проекта, который уже зарегистрирован в Athlant как проект, имеющий отображение в системе контроля версий, будет автоматически предложено произвести подключение к хранилищу.
Что хотелось бы порекомендовать разработчикам, начинающим использовать StarTeam вместе с Athlant – так это не забывать выполнять сохранение файлов перед осуществлением любых операций с системой контроля версий, иначе можно потерять многие часы осуществленной работы по собственной неосмотрительности.
Основное предназначение Athlant – сделать работу разработчика в Delphi с системой контроля версий как можно более эффективной. И Athlant с этим успешно справляется.
Athlant не может заменить полностью стандартный клиент StarTeam, так как обычно программный проект состоит из множества других файлов, помимо файлов проекта Delphi. Это могут быть скрипты таблиц данных, файлы систем автоматизированного тестирования и генерации дистрибутива, файлы документации и т.д., и работают с ними участники проекта, которые могут вообще не использовать Delphi.
Однако для программиста, который основное время занимается разработкой программных проектов именно в Delphi, Athlant станет незаменимым инструментом и помощником в работе, а не еще одной рутинной обязанностью, как часто воспринимают разработчики необходимость поддерживать проект в актуальном состоянии в системе контроля версий.
И основное преимущество Athlant состоит в том, что он создан "программистами, работающими в Delphi для программистов, работающих в Delphi" – именно так во время работы воспринимается его интуитивно понятный интерфейс и набор предостерегающих диалогов.
Copyright © 2004 Колдовский Вячеслав Специально для Delphi Plus