Subversion в delphi xe

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

Subversion в delphi xe

Вносимо зміни в проект, додаємо нові функції і т.д. Відразу в очі кидається недоробленість в плані роботи з SVN Project Manager "a. Чому немає ніяких розпізнавальних знаків для файлів, які були змінені, не перебувають під контролем, ігноруються і т.д. Це дрібниця, але, по-моєму дуже значна. Можна пережити, коли проект невеликий, складається всього з декількох модулів - і так запам'ятаєш що і де міняв і чому. А якщо великий? Кожен раз відкривати вкладку history і дивитися зміни або копатися в логах Subversion? чи не зручно до остраху.

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

Subversion в delphi xe

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

Заходимо в "Tools -> Options-> Difference Viewer" і додаємо новий зовнішній переглядач:

Subversion в delphi xe

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

pas file1 file2 r rw

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

Вікно додавання зовнішнього вюверів виглядає наступним чином:

Subversion в delphi xe

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

Programm - повний шлях до exe-файлу вюверів

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

Parameters - параметри командного рядка.

У параметри допускається вставляти один або кілька макросів, доступних у списку Macros. Трохи поекспериментувавши з макросами вийшло забезпечити більш-менш стерпне роботу Code Merger, використовуючи рядок параметрів як показано на малюнку:

Subversion в delphi xe

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

Subversion в delphi xe

Вибираємо, тиснемо "Show Diff" і ... вантажиться Beyond Compare. При цьому в налаштуваннях я вказав:

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

Subversion в delphi xe

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

Поки моя думка по роботі з зовнішніми Вьювер в Delphi XE - не допрацювали до логічного завершення. Якщо я налаштовую зовнішній переглядач і прошу щоб він був дефолтних і пріоритетним у порівнянні з усіма іншими - то він повинен бути таким завжди і скрізь. поки не зміню свої пріоритети в налаштуваннях.

Рухаємося далі. Перевіримо роботу з репозиторіями інших розробників. В якості експерименту спробував імпортувати проект VirtualTreeView з Google Code.

Subversion в delphi xe

Тиснемо "Ok" і все працюємо чудово - робоча копія створюється без проблем:

Subversion в delphi xe

Отже, які висновки я зробив для себе щодо роботи з Subversion в RAD Studio XE:

1. Чи буду я активно використовувати всі можливості, надані мені розробниками? Ні. Якщо дуже сильно потрібно впритул працювати з SVN - скористаюся TortoiseSVN + Code Merger. На крайній випадок можна зробити невеликий Commit або Update.

2. Чи розстроєний я нинішньою роботою з SVN в Delphi XE? Анітрохи. По-перше, я не очікував чогось схожого на TortoiseSVN або Eclipse відразу ж в першому релізі. Знову ж маркетинг і таке інше - тепер активно використовують SVN розробники будуть чекати нових версій - там же все повиправляв :). По-друге, мені, як власникові шалено непередбачуваного підключення до Інтернет, більше подобається робота з Git. Нехай в порівнянні з SVN перший час робота з Git здається чимось незбагненно складним і незрозумілим - з часом звикаєш. Я звик.

Посилання по темі

Схожі статті