Контроль изменений кода при разработке встраиваемых программных приложений
В статье приводится терминология и принципы управления версиями на примере системы Subversion. Также рассматриваются преимущества и удобство работы с системой контроля версий через графический интерфейс, интегрированный непосредственно в среду разработки программ, на примере взаимодействия системы Subversion с профессиональной средой разработки встраиваемых приложений Atollic TrueSTUDIO.
Возможные системные конфигурации
Большинство систем контроля версий, в том числе и Subversion, построены на клиент-серверной модели. Как правило, программное обеспечение серверной части системы Subversion устанавливается на сервере, совместно используемом командой разработчиков. Затем, для взаимодействия с ним, на рабочих станциях инженеров настраиваются и применяются клиентские компоненты системы Subversion.
Следует отдельно упомянуть, что использование таких систем контроля версий, как Subversion, сохраняет свою важность, даже если в проекте задействован один-единственный разработчик (что в области проектирования встраиваемых систем не такая уж редкость). В таком случае допускается установка программного обеспечения как клиентской, так и серверной части системы Subversion непосредственно на машину разработчика. Таким образом, поддерживается возможность работать с системой контроля версий полностью на одном компьютере.
Subversion также поддерживает специальный локальный однопользовательский режим. Он функционирует полностью без серверного программного обеспечения. В этом режиме клиент Subversion работает непосредственно с локальным репозиторием, без подключения к сети оборудования сервера и установки на нем программного обеспечения сервера баз данных.
К репозиторию Subversion можно подключаться тремя различными способами:
- Многопользовательский режим с подключением к удаленному серверу. Для доступа к серверу клиенты используют сетевое подключение. Subversion совмещает функции инструментов управления кодом и взаимодействия команды разработчиков.
- Однопользовательский режим с обращением к локальному серверу. Для доступа к серверу клиенту не нужно сетевое подключение, он просто запускает программное обеспечение серверной части Subversion на своем компьютере. Здесь Subversion выполняет функции инструмента управления кодом.
- Локальный однопользовательский режим без серверной части. Клиент подключается непосредственно к локальному репозиторию системы Subversion без какой-либо необходимости в установке и запуске серверного программного обеспечения. Здесь Subversion также выполняет функции инструмента управления кодом.
Серверная часть Subversion, запускаемая или на общедоступном сервере, или на единственной машине разработчика, не имеет какого-либо графического интерфейса и работает в фоновом режиме. Для его управления и настройки используются утилиты командной строки и файлы конфигурации.
По умолчанию клиентская часть Subversion запускается из командной строки, с указанием команды “svn” и различных нужных опций. Тем не менее существуют и альтернативные версии клиентов Suversion, поддерживающие графический интерфейс.
Преимущества интеграции Atollic TrueSTUDIO с Subversion
Как было сказано ранее, доступ клиентов ко всем функциям системы Subversion возможен из командной строки. Однако для большинства разработчиков такой способ не является наиболее наглядным и удобным. Поэтому они прибегают к помощи каких-либо внешних клиентов, поддерживающих графический интерфейс.
Но и этот способ не оптимален для ежедневного использования. Причина заключается в следующем. Любое действие, которое заставляет разработчика переключаться от основной среды разработки для выполнения дополнительных задач, которые, тем не менее, считаются неотъемлемой частью процесса разработки приложений, отвлекает, приводит к потере внимания и в конечном счете к значительному снижению производительности труда.
В идеале для эффективного использования среда разработки встраиваемых систем на C/C++ должна включать глубоко интегрированный клиент системы контроля версий с поддержкой графического интерфейса. В таком случае большая часть операций взаимодействия с системой контроля версий плавно вписывается в ежедневный рабочий процесс, не оказывая никакого негативного воздействия.
Одним из таких клиентов системы Subversion с уверенностью можно назвать пакет Atollic TrueSTUDIO.
В первую очередь Atollic TrueSTUDIO является усовершенствованной профессиональной средой для разработки современных программных приложений с кодом на C/C++ для встраиваемых систем. Обеспечивает хорошо интегрированные инструменты для профессиональной разработки и отладки кода встраиваемых систем, для координирования совместной работы в команде, для проведения статического анализа исходного кода, автоматизации тестирования и измерения качества проведенного тестирования. Удобство и эффективность применения данная среда уже не раз доказала при разработке встраиваемых систем [9, 10, 11, 12].
К тому же данная среда поддерживает достаточно глубокую степень интеграции с системой контроля версий Subversion. Выступая в качестве удобного клиента системы, Atollic TrueSTUDIO предоставляет удобный графический интерфейс для быстрого и наглядного доступа к широкому ряду функциональных возможностей, поддерживаемых в Subversion для управления исходным кодом и координирования совместной командной работы.
В следующих разделах приводится описание, как легко и удобно получить доступ к системе контроля версий Subversion из интегрированной среды разработки встраиваемых приложений Atollic TrueSTUDIO, используя простой и понятный, но достаточно развернутый графический интерфейс пользователя.
Подключение к Subversion
Прежде чем интегрировать Atollic TrueSTUDIO с репозиторием Subversion, нужно создать данный репозиторий на стороне сервера. Процедура выполняется с помощью специальных административных инструментов системы Subversion, что уже было описано ранее.
Кроме того, необходимо установить соединение между клиентской машиной разработчика и сервером, на котором находится репозиторий Subversion. Как правило, корректной настройкой сетевого подключения и учетных данных безопасности занимаются сотрудники IT-службы компании.
После этого из среды Atollic TrueSTUDIO можно подключаться к доступным репозиториям. С помощью команд главного меню Windows -> Show view -> Other открывается панель просмотра репозиториев SVN (SVN Repositories view). Панель содержит дерево доступных репозиториев и связанных с ними опций (рис. 18).
Если среда Atollic TrueSTUDIO уже подключена к одному или более репозиториям, то отображается список их имен и можно развернуть и посмотреть структуру каждого интересующего репозитория (проекты и их файлы, ветви, теги и т. д.).
Для создания нового подключения к еще одному репозиторию необходимо нажать на панели инструментов кнопку с зеленым знаком «+». По ней открывается диалоговое окно для указания информации о сетевом подключении и учетных данных, чтобы получить доступ к интересующему репозиторию (рис. 19).
Дополнительные закладки данного диалога предоставляют возможности более детальной конфигурации, такие как дополнительные опции работы с системой Subversion (Advanced), настройки безопасности по протоколам SSH и SSL (SSH Settings и SSL Settings соответственно).
Получение доступа к Subversion
Сразу же после подключения среды Atollic TrueSTUDIO к тому или иному репозиторию можно приступать к работе с ним. Поскольку Atollic TrueSTUDIO — полномасштабная профессиональная среда разработки, она содержит множество опций меню, панелей инструментов и панелей просмотра данных, которые, чтобы избежать информационной перегрузки, по умолчанию скрыты. В том числе это касается и графического клиента Subversion.
По умолчанию доступ к Subversion из среды Atollic TrueSTUDIO можно получить, только кликнув правой кнопкой мыши на соответствующий файл или директорию на панели проводника проекта (Project Explorer view). В открывшемся контекстном меню нужно выбрать команду Team («Совместная работа»). Если Atollic TrueSTUDIO подключен к репозиторию Subversion, то отобразится подчиненное меню с перечнем доступных команд (рис. 20).
Используя данное меню, можно получить доступ к большинству функциональных возможностей на стороне клиента Subversion. Наряду с этим существует еще два альтернативных и, на взгляд автора, более удобных способа доступа к Subversion: через специальную панель инструментов или группу команд главного меню.
Как упоминалось, по умолчанию они скрыты. Их отображение в Atollic TrueSTUDIO настраивается на форме кастомизации внешнего вида среды разработки (Customize Perspective). Для вызова этой формы существует команда главного меню Windows -> Customize -> Perspective.
На форме кастомизации нужно открыть закладку настройки доступности групп команд (Command Groups Availability), выставить флажок напротив значения SVN (рис. 21).
После того как применены изменения, на интерфейсе Atollic TrueSTUDIO отобразится меню SVN и соответствующая ему панель инструментов.
Меню SVN содержит набор команд для поддержки большинства функциональных возможностей в системе Subversion на стороне клиента (рис. 22). Панель инструментов обеспечивает быстрый доступ к наиболее часто используемым функциям (рис. 23).
Получив доступ к графическому интерфейсу клиентской части Subversion любым из трех описанных способов, можно начать использовать функциональные возможности системы контроля версий.
Просмотр содержимого репозитория
Для просмотра состояния централизованного репозитория можно использовать специальный браузер, доступный по команде главного меню Windows -> Show view -> Other. В открывшейся форме настройки просмотра (рис. 24) нужно развернуть категорию SVN и выбрать в ней браузер репозитория SVN (SVN Repository Browser).
На форме браузера (рис. 25) можно перемещаться между файлами и директориями репозитория. По клику правой кнопки мыши на каком-либо ресурсе вызывается контекстное меню с операциями, которые могут быть применены к нему в репозитории.
Фиксирование обновлений кода
Для фиксирования обновлений кода в одном или сразу в нескольких файлах предусмотрена команда меню Commit. В процессе обработки клиент Subversion отображает диалог (рис. 26), где предлагает указать комментарий, который будет сохранен в системе и в дальнейшем поможет разъяснить цель данного изменения кода.
В приведенном примере следует обращать внимание на предупреждение в верхней части диалогового окна. При отображении оно информирует о том, что один или более фиксируемых файлов имеют ошибки компиляции.
Кроме того, приводится список файлов, код которых будет зафиксирован в репозитории. По двойному щелчку мыши на любом из файлов запускается графическая утилита отображения различий между обрабатываемым файлом и имеющимся в репозитории (рис. 27).
Следует отметить, что за счет графического интерфейса данная утилита не только позволяет визуально сравнить содержимое файлов между собой, но и предоставляет последнюю возможность удобного просмотра изменений, внесенных в код, которые планируется отправить в центральный репозиторий. И конечно, если возникает необходимость, можно внести в код соответствующие коррективы.
Просмотр журнала изменения файлов
Для просмотра журнала изменений любого ресурса, будь то файл или директория, предусмотрена команда меню Show History.
В журнале (рис. 28) можно просматривать список всех ревизий (операций фиксирования кода), которые изменили данный файл. Также предоставляются комментарии и, соответственно, информация о том, когда совершено изменение, кем и для какой цели. Дополнительно можно посмотреть, код каких еще файлов был зафиксирован в репозитории в момент той же ревизии.
При выборе любых двух ревизий одного и того же файла в списке можно с помощью графической утилиты сравнения файлов увидеть все различия между ними (рис. 29).
Просмотр журнала построчных изменений
Для любого выбранного файла можно проследить изменения, затронувшие конкретные интересующие строки в этом файле. Для этого в SVN предусмотрена команда Show Annotation. При вызове этой команды выбранный файл открывается в редакторе, где используется специальная цветовая подсветка строк (рис. 30).
Подсветка позволяет наглядно увидеть, когда те или иные строки кода были добавлены или изменены в конкретном файле, кем это было сделано и по какой причине.
Для разных моментов времени изменения кода в редакторе используется свой цвет выделения. Таким образом, все строки, подсвеченные одним цветом, были модифицированы (зафиксированы в репозитории с помощью команды commit) единовременно, то есть являются частью одной и той же ревизии кода.
Изучая такую цветовую подсветку, можно увидеть, что одни строки кода были добавлены одновременно, а другие — в разное время. В примере на рис. 30 строки с 128 по 131 изменены в рамках одной ревизии, строки 127, 132, 133 и 139 — в другое время, в другой ревизии, и т. д.
При перемещении курсора мыши в левом поле отображается всплывающая подсказка с информацией о том, когда, кем и для какой цели была добавлена или изменена данная строка кода, а также все остальные строки с тем же цветом.
Таким образом, обеспечивается отображение изменений, отслеживаемых для полного объема строк кода в выбранном файле, помещенном в репозиторий.
Работа с графом ревизий кода
Помимо возможности просмотра содержимого репозитория в текстовом виде, система контроля версий Subversion поддерживает и очень наглядную возможность графического представления.
Граф ревизий в Subversion обеспечивает наиболее простой и информативный способ получить представление о развитии кода в репозитории с помощью графической диаграммы (рис. 31). Для запуска отображения графа предусмотрена команда Show Revision Graph.
Граф ревизий обеспечивает графическое представление всех доступных точек фиксирования кода в репозитории, создания и слияния ветвей кода, а также всех присвоенных тегов.
По щелчку правой кнопкой мыши на любом графическом объекте на графе вызывается контекстно-зависимое меню. Оно предоставляет доступ к большинству операций Subversion, которые можно выполнять непосредственно на графе.
Доступна настройка фильтрации информации, отображаемой на графе.
Так, можно показывать только точки создания и слияния ветвей кода с указанием присвоенных тегов. При таком отображении граф не будет загромождаться полной историей всех моментов фиксирования кода в репозитории. Это позволяет разработчику сосредоточиться на структурных изменениях в репозитории, сохраняя при этом возможность для более детального изучения истории изменений, если это потребуется.
Заключение
По мере неуклонного возрастания сложности и объема кода современных встраиваемых приложений все большего внимания требуют и вопросы эффективного управления программным обеспечением в ходе его разработки.
Системы контроля версий, такие как Subversion, способны успешно решать эту проблему, предоставляя широкий спектр функциональных возможностей для отслеживания изменений в коде, управления разрабатываемым кодом, а также для обеспечения взаимодействия команды разработчиков друг с другом.
Это позволяет контролировать ход работ над проектом, сократить время разработки и в конечном итоге привести к повышению качества программного обеспечения.
Новые инструменты разработки встраиваемых приложений, такие как Atollic TrueSTUDIO, интегрируют возможности управления кодом непосредственно в саму среду разработки кода. Это значит, что для контроля версий кода у разработчиков нет необходимости покидать среду разработки и переключать внимание на отдельные вспомогательные инструменты. Соответственно, существенно повышается производительность.
К тому же Atollic TrueSTUDIO обеспечивает глубоко интегрированный графический клиент для системы Subversion, что значительно расширяет возможности профессионального управления разрабатываемым кодом.
- Сергеева А. Тестирование работоспособности промышленного компьютера // Компоненты и технологии. 2014. № 2.
- Сергеева А. Применение реинжиниринга при проектировании встраиваемых систем. Часть 1 // Компоненты и технологии. 2014. № 9.
- Сергеева А. Применение реинжиниринга при проектировании встраиваемых систем. Часть 2 // Компоненты и технологии. 2014. № 10.
- Сергеева А. Инструменты тестировщика, или С чего начать новичку // Системный администратор. 2014. № 7–8.
- Об инструменте Atollic TrueANALYZER. atollic.com/trueanalyzer
- Официальный сайт разработчиков Subversion. subversion.apache.org
- Сергеева А. Гибкие методологии разработки современных программных приложений // Системный администратор. 2015. № 1–2.
- Официальное описание работы с Subversion. svnbook.red-bean.com
- Сергеева А. Возможности статического анализатора Atollic TrueINSPECTOR для повышения качества встраиваемых приложений // Компоненты и технологии. 2015. № 4.
- Сергеева А. Автоматизация модульного тестирования с Atollic TrueVERIFIER для повышения качества встраиваемых приложений // Компоненты и технологии. 2015. № 5.
- Сергеева А. Возможности Atollic TrueSTUDIO для повышения качества разработки и отладки встраиваемых систем на базе ARM // Компоненты и технологии. 2015. № 6.
- Сергеева А. Измерение качества тестирования встраиваемых приложений с Atollic TrueANALYZER // Компоненты и технологии. 2015. № 7.