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 здається чимось незбагненно складним і незрозумілим – з часом звикаєш. Я звик.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*