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

Subversion в Delphi XE. Впечатления после одного дня работы.

Вчера задумал попробовать использовать новую возможность RAD Studio XE - поработать с Subversion. Пересмотрел ещё раз официальный ролик где рассказывается об этой фиче, создал репозиторий на Google Code, простенький Delphi-проект и начал свое маленькое исследование. В принципе, я не ожидал увидеть прямо так сразу в Delphi XE все возможности работы с CVS как, например, в том же Eclipse, но, что получилось то получилось…

Итак, начнем пожалуй с официального видео от Embarcadero:

Обратите внимание на момент, когда создается новые проект и ставится под контроль CVS, создается проект, содержащий пустую форму, далее в Project Manager вызывается контекстное меню и выбирается пункт "Add to Version Control" после чего проект сохраняется в папку с интересным названием и судя по видео должно появится новое окно в котором показаны файлы, встающие под контроль и кнопка "Import". Далее выбираем репозиторий и ставим проект под контроль.

Вносим изменения в проект, добавляем новые функции и т.д. Сразу в глаза бросается недоделанность в плане работы с SVN Project Manager"a. Почему нет никаких опознавательных знаков для файлов, которые были изменены, не находятся под контролем, игнорируются и т.д.? Это мелочь, но, по-моему очень значительная. Можно пережить, когда проект мелкий, состоит всего их нескольких модулей - и так запомнишь что и где менял и почему. А если крупный? Каждый раз открывать вкладку history и смотреть изменения или копаться в логах Subversion? Не удобно до жути.

Следующий момент - добавление новых файлов под контроль. Здесь вроде бы все в порядке. Рассмотрим, например, такую ситуацию: только начинаете работать над проектом, уже нарисовалась какая-никакая структура репозитория, основные файлы проекта уже находятся там и Вам заходелось добавить, скажем, папку addons в которой Вы планируете хранить модули каких-нибудь сторонних библиотек, используемых в проекте. Создаем новую директорию, закидываем туда необходимые файлы и в контекстном меню Project Manager"а выбираем "Subversion -> Commit". В окне коммита устанавливаем флажок "Show unversioned files" и видим все файлы рабочей копии, которые не находятся под контролем:

Далее добавляем ставим файлы под контроль, комментируем, коммиттим и т.д. в общем стандартный набор операций. Тут, как я уже сказал, все в порядке и работает нормально за одним небольшим исключением - когда в репозиторий отправляется много файлов IDE виснет наглухо. Видно, что в Messages вроде бы бегунок дёргается, т.е. что-то туда пишется, но IDE замирает и ничего делать кроме как ждать и ещё раз ждать не получается. Будем надеяться, что при первом Update RAD Studio эту часть доработают.

Следующий момент - работа с Diff Viewer""ами. Так как я уже изрядно избалован пожизненной лицензией Code Merger"а, то, естественно, работа встроенного вьювера  "Beyond Compare" меня никак не устроила. Просматривать добавленные лишние пробелы и удаленные излишние коментарии как-то не порадовало. Тем более, что на мой взгляд, Code Merger самым наилучшим образом подходит под работу с pas и dfm-файлами. Благо в опциях Delphi XE предусмотрена настройка внешних вьюверов. Пробуем настроить.

Заходим в "Tools-->Options-> Difference Viewer" и добавляем новый внешний вьювер:

Для настройки Code Merger в качестве внешнего вьювера ему необходимо в параметрах передать строку вида:

pas file1 file2 r rw

где pas - тип файлов для сравнения, file1 и file2 - имена файлов для сравнения, включая полный путь до них, r rw - доступ к файлам (r - чтение, rw - чтение и запись).

Окно добавление внешнего вьювера выглядит следующим образом:

Title - название вьювера, которое будет отображаться в списке.

Programm - полный путь до exe-файла вьювера

Working directory - рабочая директория. Заполняется автоматом на основе данных из поля Programm

Parameters - параметры командной строки.

В параметры допускается вставлять один или несколько макросов, доступных в списке Macros. Немного поэкспериментировав с макросами получилось обеспечить более-менее сносную работу Code Merger,используя строку параметров как показано на рисунке:

После настройки необходимо перезапустить IDE и тогда Code Merger (тьфу-тьфу-тьфу) вроде бы нормально принимает все параметры и показывает различия между ревизиями и т.д.

Теперь пробуем просмотреть с помощью внешнего вьювера различия. Выбираем в Project Manager файл, вызываем контекстное меню и указываем "Compare -> History Compare". Нам предлагаю выбрать что будем сравнивать сравнивать:

Выбираем, жмем "Show Diff" и… грузится Beyond Compare. При этом в настройках я указал:

Пробовал и наоборот - результат тот же. А что бы увидеть свой собственноручно настроенный вьювер в работе необходимо открыть файл, перейти на закладку History -> Difference, выбрать объекты для сравнения и нажать кнопку "Show in Difference Viewer":

Вот тогда заработает Ваш вьювер. Во всех остальных случаях: через контекстное меню мэнеджера проектов, через главное меню "Edit -> Compare" - запускается Beyond Compare. Может кто-то смог от него избавиться и нормально настроить свой вьювер для запуска из мэнеджера проектов?

Пока мое мнение по работе с внешними вьюверами в Delphi XE - не доработана до логического завершения. Если я настраиваю внешний вьювер и прошу чтобы он был дефолтным и приоритетным по сравнению со всеми другими - то он должен быть таковым всегда и везде, пока не изменю свои приоритеты в настройках .  

Двигаемся дальше. Проверим работу с репозиториями других разработчиков. В качестве эксперимента попробовал импортировать проект VirtualTreeView из Google Code.

Выбираем в главном меню IDE "File -> Open From Version Control". Нас проят указать адрес репозитория и путь до директории с рабочей копией. Указываем:

Жмем "Ok" и все работаем замечательно - рабочая копия создается без проблем:

Итак, какие выводы я сделал для себя касательно работы с Subversion в RAD Studio XE:

1. Буду ли я активно использовать все возможности, предоставленные мне разработчиками? Нет. Если очень сильно потребуется вплотную работать с SVN - воспользуюсь TortoiseSVN + Code Merger. На крайний случай можно сделать мелкий Commit или Update.

2. Расстроен ли я нынешней работой с SVN в Delphi XE? Нисколько. Во-первых, я не ожидал чего-то похожего на TortoiseSVN или Eclipse сразу же в первом релизе. Опять же маркетинг и всё такое - теперь активно использующие SVN разработчики будут ждать новых версий - там же всё поисправляют :). Во-вторых, мне, как обладателю безумно непредсказуемого подключения к Интернет, больше нравится работа с Git. Пусть по сравнению  с SVN первое время работа с Git кажется чем-то непостижимо сложным и непонятным - со временем привыкаешь. Я привык.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Embarcadero »
Написать редактору 
 Рекомендовать » Дата публикации: 06.04.2011 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Enterprise Connectors (1 Year term)
Delphi Professional Named User
Bamboo
ABBYY Lingvo x6 Многоязычная Профессиональная версия, электронный ключ
Stimulsoft Reports.Ultimate Single License Includes one year subscription
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Мир OLAP и Business Intelligence: новости, статьи, обзоры
ЕRP-Форум. Творческие дискуссии о системах автоматизации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Разработка программ базы данных (63)
Написание прикладных компьютерных программ (базы данных) на заказ. Разработка корпоративных...
 
Кухня (4)
Хочу сделать ремонт на кухне. Где приобрести кухонную плиту? Какой фирмы стоит её рассматривать?
 
Как в IBM Rational DOORS сделать заголовки не жирным шрифтом? (2)
Измучился уже, когда идет иерархия уровнем ниже, чем Х.Х., мне нужно, чтобы заголовки не...
 
Ищу программиста для написания программы (62)
Ищу программиста ,владеющего Вижуал Бэйсик и программированием в Экселе, для написания...
 
Отличается ли ДрифтКазино от беттинга? (18)
Друзья, давно заметил, что на Дрифте уже несколько месяцев во всю рекламируется и предлагается...
 
 
 



    
rambler's top100 Rambler's Top100