Розв’язання конфліктів

Конфлікти можуть виникати, якщо ви вносите зміни до файла, який вже було змінено іншим розробником. CVS виявляє конфлікт, коли ви оновлюєте змінений файл. Після виявленні конфлікту CVS намагається об’єднати зміни, внесені іншим розробником, з вашою робочою копією. Спроба об’єднання може зазнати невдачі, якщо ці зміни було внесено до однакових частин файла. У такому випадку сервер CVS надсилає повідомлення про помилку.

У головній області перегляду Cervisia файли з конфліктом позначаються написом «Конфлікт» у стовпчику стану, а також виділяються червоним кольором. Після цього вашим завданням є розв’язання конфліктів до надсилання нової версії файла. У CVS не передбачено можливості надсилання будь-яких файлів з конфліктами до того, як ці конфлікти буде розв’язано. Якщо ви працюєте з головною областю перегляду програми, ви, звичайно ж, можете розв’язати конфлікти у традиційний спосіб: навести вказівник миші на позначку конфліктного файла, двічі клацнути лівою кнопкою миші і змінити файл за допомогою вашого улюбленого текстового редактора.

CVS позначає конфліктні файли позначками всередині таких файлів, розставленими у такий спосіб:

<<<<<<<
Зміни у вашій робочій копії
=======
Зміни у сховищі
>>>>>>> номер_модифікації

Вам слід замінити весь цей блок новою об’єднаною версією. Звичайно ж, у вас залишається широкий простір для розв’язання всього набору конфліктів: у кожному випадку ви можете обрати один або інший варіант. Ви також можете вирішити, що обидва підходи є неправильними і переписати весь блок, або навіть весь файл, від початку.

На щастя, у Cervisia передбачено кращий інтерфейс для роботи з такого роду конфліктами. Наявність цього інтерфейсу не означає, що у вас ніколи не виникне потреби у редагуванні файлів вручну, але, принаймні, такої потреби не виникатиме у разі найпростіших конфліктів. Для того, щоб відкрити діалогове вікно CVS вирішення Cervisia, скористайтеся пунктом меню ФайлВирішити... або наведіть вказівник миші на позначку відповідного файла, клацніть правою кнопкою миші і оберіть пункт Вирішити... з контекстного меню.

Рисунок 3.3. Знімок діалогового вікна вирішення конфліктів Cervisia

Знімок діалогового вікна вирішення конфліктів Cervisia

У верхній частині цього діалогового вікна ви побачите вашу версію, Ваша версія (A), файла ліворуч і версію зі сховища, Інша версія (B), праворуч. Відмінності між цими версіями буде позначено червоним кольором. Під цими двома версіями ви побачите поле Поєднана версія. У поєднаній версії буде показано частину тексту, яку ви отримаєте у вашій робочій копії, якщо натиснете кнопку Зберегти.

Ви можете переводити перегляд назад і вперед списком фрагментів з конфліктами натисканням кнопок << і >>. За допомогою середини нижньої частини діалогового вікна ви зможете слідкувати за тим, який з фрагментів зараз позначено. Наприклад, 2 з 3 означає, що зараз ви працюєте над другим з фрагментів з конфліктами з 3.

Ви можете один за одним вирішити, який з фрагментів має залишитися у об’єднаній версії файла. Якщо ви натиснете кнопку A, перевагу буде надано вашій версії. Натискання кнопки B, віддасть перевагу версії зі сховища. Якщо ви натиснете кнопку A+B, у файл буде додано обидві версії, вашу версію буде додано першою. Натискання кнопки B+A призведе до подібного результату, але порядок фрагментів буде іншим: спочатку буде додано версію фрагмента зі сховища, а потім вже вашу.

Якщо вас не влаштовують обидві версії, ви можете натиснути кнопку Редагувати, щоб відкрити простий текстовий редактор, за допомогою якого ви зможете вручну виправити конфліктний фрагмент. Після завершення редагування натисніть кнопку Гаразд, щоб повернутися до діалогового вікна CVS вирішення і поновити процес розв’язання конфліктів. Ви побачите фрагмент, який ви щойно змінили, у розділі Поєднана версія з внесеними змінами.

Щоб зберегти внесені зміни, з перезаписом версії з робочої копії, натисніть кнопку Зберегти. Зауважте, що натискання цієї кнопки призведе до збереження не лише фрагмента, над яким ви щойно працювали, а й усіх фрагментів поточного файла. Якщо ви бажаєте зберегти змінену версію до іншого файла, натисніть кнопку Зберегти як.... Натискання кнопки Закрити призведе до закриття діалогового вікна. Якщо ви закриєте вікно без збереження змін, ці зміни буде втрачено.