(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Анализ изменений в исходном коде средствами Borland StarTeam

В современной разработке программного обеспечения часто встречается ситуация, когда необходимо сравнить несколько версий одного и того же файла исходного кода. Например, ведущий разработчик может не разрабатывать программный код, а лишь анализировать результаты работы подчиненных ему разработчиков. Другой пример, когда разработчик не может выявить ситуацию, при которой в разрабатываемой программе возникает ошибка - для этого ему нужно проанализировать изменения в коде, которые он сделал за определенный период времени. И, наконец, пример, когда участнику проекта необходимо найти версию программного кода, в которой были внесены определенные изменения.

Команды разработчиков, использующие в своей работе систему управления конфигурациями Borland StarTeam, имеют отличный инструментарий для выполнения описанных выше задач.

Первая возможность, которую мы можем использовать при анализе изменений в коде - это просмотр комментариев к зафиксированным версиям. При каждом фиксировании версии (Check in…) пользователь должен вводить текст, описывающий выкладываемые изменения, например, "оптимизирован алгоритм сортировки, скорость увеличена в три раза" или "выполнен рефакторинг кода, удалены неиспользуемые переменные". Данные комментарии можно увидеть на вкладке History на нижней панели в клиенте StarTeam (рис.1).

Рис.1. Комментарии к изменениям в файлах в клиенте StarTeam.

Также на данной вкладке присутствуют поля "Revision" (порядковый номер ревизии файла), "Modified By" (кто зафиксировал данную ревизию файла), "Modified Time" (время фиксирования версии). Помимо перечисленных полей, можно настроить вывод других полей (рис.2), которые по умолчанию скрыты.

Рис.2. Окно настройки отображения полей на вкладке History.

Таким образом, выбрав нужные поля, можно уже на стадии просмотра списка ревизий выбранного файла получать некоторую информацию о внесенных изменениях.

Предположим, что в результате просмотра истории изменений файла, была найдена та ревизия файла, изменения в которой необходимо проанализировать. Здесь существует две возможности: сравнить выбранную ревизию файла с текущей ревизией (локальной), и сравнить выбранную ревизию с любой другой ревизией этого же файла. Для того чтобы сравнить выбранную ревизию с локальной, нажимаем правой кнопкой мыши по выбранной ревизии на вкладке History и в контекстном меню выбираем пункт "Compare Contents". В результате отобразиться окно "File Compare/Merge" (рис.3), в котором цветом отмечены различия в содержимом разных ревизий выбранного файла.

Рис.3. Различия в ревизиях файлов в окне "File Compare/Merge"

В левой части окна расположена выбранная ревизия, в правой части - текущая ревизия файла (локальная). Зеленым цветом выделены строки, которых не существует в сравниваемой ревизии, желтым - те, которые были изменены.

Интересная особенность заключается в том, что при наведении указатель мыши на выделенную область, на ней появиться кнопка со стрелкой, при нажатии на которую выделенный фрагмент кода будет перемещен на соседнюю ревизию. Это позволяет не только пассивно сравнивать изменения в коде, но и переносить фрагменты кода из старых ревизий в текущую ревизию.

В правой нижней части экрана, под линейкой прокрутки, расположены две пары кнопок с двойными стрелками, направленными вверх и вниз. Они служат для быстрого перехода к следующему или предыдущему выделенному блоку. Особенно это полезно при работе с файлами большого объема, в которых реализованы лишь небольшие изменения, разбросанные по всему файлу.

Теперь рассмотрим, как сравнивать содержимое двух произвольных ревизий файла. Это очень просто - нужно на вкладке History выбрать две ревизии удерживая кнопку Ctrl, после чего в контекстном меню выбрать пункт "Compare Contents". В результате отобразиться окно, которое уже было представлено на рис.3, но с соответствующими изменениями в ревизиях.

Данной возможностью очень удобно пользоваться при анализе изменений в недавно зафиксированных файлах. Например, в клиенте StarTeam нужно выбрать нужную папку (или весь проект), после чего все файлы, которые являются "устаревшими" на локальной машине по отношению к файлам на сервере StarTeam, будут отмечены статусом "Out of Date". Затем в контекстном меню на нужных файлах необходимо выбрать пункт "Compare Contents", после чего откроется уже знакомое нам окно "File Compare/Merge", где будут представлена локальная ревизия файла, и та ревизия, которая зафиксирована на сервере StarTeam. Тем самым StarTeam предоставляет нам удобную возможность для анализа изменений в старых ревизиях файлов, а также для сравнения текущей ревизии с предыдущими ревизиями, и с теми, которые еще не были получены с сервера StarTeam на локальный компьютер.

Однако многим пользователям функционал утилиты сравнения может показаться ограниченным, недостаточным для решения каких-либо задач. Для этого в клиенте StarTeam существует возможность подключения сторонних утилит для сравнения и слияния ревизий файлов, а также просто для их просмотра. Для того, чтобы настроить внешние утилиты необходимо пункт меню Tools - Personal Options… в открывшемся окне переключиться на вкладку "File" и в нижней части окна нажать кнопку "Alternate Applications…", после чего откроется окно "Alternate Application" (сторонние приложения).

Рис.4. Окно настройки сторонних приложений.

Давайте рассмотрим пример подключения стороннего приложения для сравнения ревизий двух файлов. В качестве стороннего приложения выберем утилиту Araxis Merge. Данная утилита является одной из самых популярных программ для сравнения файлов различных форматов. В отличие от рассмотренной нами стандартной утилиты, Araxis умеет сравнивать и показывать различия не только в текстовых файлах, но и бинарных файлах, и даже в файлах изображений.

Для того чтобы подключить Araxis к StarTeam мы должны в окне "Alternate Application" прописать путь к исполняемому файлу Compare.exe и указать перечень параметров. В качестве параметров мы передаем два файла, которые Araxis и будет сравнивать. В StarTeam для обозначения этих файлов предназначены предопределенные ключевые слова $file1 и $file2 (рис.5).

Рис.5. Настроенные параметры для утилиты сравнения ревизий. 

Теперь, когда параметры настроены, можно проверить результат использования Araxis для сравнения ревизий файлов. Можно выбрать те же ревизии, которые мы выбирали в предыдущих примерах и также в контекстном меню выбрать пункт "Compare Contents". В результате отобразится уже не окно "File Compare/Merge", а окно Araxis Merge (рис.6). Для наглядности на данном рисунке представлен тот же фрагмент кода, что и на рис.3. 

 

Рис.6. Различия в ревизиях файлов в утилите Araxis Merge

Как видите, принцип отображения различий в коде похожий, но есть и особенности. Однако это уже выходит за рамки данной статьи, более подробную информацию об утилите Araxis можно получить с официального сайта или из справочной системы.

Таким образом, в данной статье мы рассмотрели возможности, которые дает StarTeam для анализа изменений в исходных кодах. В случае если пользователю не хватает стандартного инструментария StarTeam - имеется возможность подключить сторонние специализированные утилиты, тем самым расширив возможности анализа изменений в файлах исходного кода.



 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Micro Focus/Borland »
Написать редактору 
 Рекомендовать » Дата публикации: 05.05.2010 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
IBM Domino Messaging Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
Allround Automation PL/SQL Developer - Unlimited license
Microsoft SQL Server Standard Edition 2017 Sngl OLP 1License NoLevel
Компонент ContentLock - от 1 ПК до 24 ПК
Radmin 3.x - Стандартная лицензия 1 компьютер
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Новые материалы
Мастерская программиста
Программирование на Visual С++
Все о PHP и даже больше
Новости мира 3D-ускорителей
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Как мигрировать программу написанную на старом Буилдер 4.52 (1)
Мы поддерживаем старое приложение написанное с использованием С++ Буилдер 5.5 (ЕХЕ) и Буилдер...
 
Создание базы данных в Delphi, без сторонних БД (1)
Уважаемый автор, гуглю уже который день и у Вас как у всех "кидаем.." "даже не создаем проект"...
 
C++ Builder6 & Excel (11)
Доброе время суток! Пишу приложение в C++ Builder6 для формирования файлов Excel. Требуется...
 
Принцип создания плагинов в Delphi (3)
Достали, Эта статья не о плагинах а о подключении dll и возможности использования ресурсов в...
 
QuickREport (40)
Есть приложение скомпилированное в Delphi6. Для построения отчетов я использовал компонеты из...
 
 
 



    
rambler's top100 Rambler's Top100