Підручник з Cervisia

# Підручник з Cervisia

Bernd Gehrmann `<bernd@mail.berlios.de>`

Carlos Woelz `<carloswoelz@imap-mail.com>`

Переклад українською: Юрій Чорноіван
версія 3.11 (Програми 16.08) (16 червня 2016 року)

Авторське право © 1999, 2000, 2001, 2002 Bernd Gehrmann

Авторське право © 2004 Carlos Woelz

Правова примітка

Cervisia — це графічний інтерфейс для перегляду CVS.

Список ілюстрацій

2.1. Знімок діалогового вікна налаштування доступу до сховищ у Cervisia
2.2. Знімок діалогового вікна імпорту Cervisia
2.3. Знімок діалогового вікна отримання Cervisia
2.4. Знімок основної області перегляду Cervisia
3.1. Знімок контекстного меню Cervisia
3.2. Знімок діалогового вікна надсилання файлів Cervisia
3.3. Знімок діалогового вікна вирішення конфліктів Cervisia
4.1. Знімок діалогового вікна різниць Cervisia
4.2. Знімок діалогового вікна накладання латки у Cervisia
4.3. Знімок діалогового вікна додавання коментарів у Cervisia
4.4. Знімок діалогового вікна перегляду журналів Cervisia
4.5. Знімок діалогового вікна історії Cervisia
5.1. Знімок діалогового вікна оновлення до випуску Cervisia

Розділ 1. Вступ
Вступ

# Розділ 1. Вступ

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

Система керування версіями — це інструмент, призначений для запису, керування і поширення різних версій файлів. CVS є системою керування версіями. Ця система спрощує вам спільну роботу на змінами у коді, оскільки кожен з розробників може одночасно працювати над власною локальною копією без ризику перезапису змін, внесених іншими розробниками. CVS надає вам змогу відновлювати попередні версії (корисно для встановлення джерела вад), створення версій (для експериментальної розробки або випуску програми) та виконувати інші дії.

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

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

Розділ 2. Початок роботи
Початок роботи

# Розділ 2. Початок роботи

## Доступ до сховища

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

### Підказка

Якщо ви плануєте розробляти складний проєкт, вам варто скористатися можливостями CVS, навіть якщо ви є єдиним розробником. Ви можете внести всі зміни до робочої копії, а потім скористатися Cervisia (або будь-яким іншим інструментом роботи з CVS) для оновлення і надсилання змін. Таким чином, ви отримаєте можливість стежити за змінами, які спричиняють до помилок у програмі, скасовувати зміни, уникати випадкової втрати даних тощо. За допомогою Cervisia просто створити локальне сховище.

Процедура 2.1. Створення локального сховища

1. Відкрийте діалогове вікно Створити нове сховище (cvs init) за допомогою пункту меню Сховище → Створити....

2. Натисніть кнопку ..., щоб обрати теку, у якій ви бажаєте створити сховище, або введіть його адресу у поле для введення тексту. Наприклад, якщо ви бажаєте розташувати сховище у теці `/home/user` і назвати його `cvsroot`, вам слід ввести `/home/user/cvsroot` у поле для введення тексту або обрати теку `/home/user` за допомогою інструменту графічного вибору, а потім додати `cvsroot`.

3. Підтвердьте відомості натисканням кнопки Гаразд. Після натискання Cervisia створить і ініціалізує нову теку сховища.

4. Тепер ви можете імпортувати вашу поточну роботу до сховища або просто створити теку у сховищі, щоб розпочати роботу над новим модулем з нуля.

У Cervisia передбачено вбудовану оболонку для керування всіма адресами ваших сховищ — діалогове вікно Налаштувати доступ до сховищ. Щоб відкрити це діалогове вікно, скористайтеся пунктом меню Сховище → Сховища....

Рисунок 2.1. Знімок діалогового вікна налаштування доступу до сховищ у Cervisia

Існує декілька способів доступу до сховища CVS. Доступ до сховища можна отримати за допомогою розпізнавання за паролем (:pserver:), за допомогою безпечної оболонки (з використанням :ext:), за допомогою локального сховища (:local:) тощо. Формат адреси сховища має бути таким (необов’язкові елементи вказано у квадратних дужках):

`[:метод:][[користувач][:пароль]@]назва вузла[:[порт]]/шлях/до/сховища`

Не всі з цих елементів (користувач, пароль, назва вузла, порт) неодмінно потрібні для доступу до сховища. Перелік потрібних відомостей залежить від використаного методу доступу, методи доступу можна розділити на такі категорії:

Локальний

  Метод локального доступу є типовим методом, що використовується у CVS. Тому, за бажання, ви можете додати метод :local: до адреси сховища: ви можете просто ввести шлях до теки, у якій зберігається сховище CVS і яка доступна з вашого комп’ютера, наприклад `/шлях/до/сховища` або, якщо користуватися конкретним прикладом, `/home/cvs`.

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

rsh

  Розташуванням сховища є щось на зразок `:ext:користувач@вузол.url.org:/шлях/до/сховища`.

  Для користування цим методом вам потрібен обліковий запис користувача на комп’ютері-сервері (у нашому прикладі, `host.url.org`) і віддалений доступ до оболонки для обміну даними. Типово, CVS використовує з цією метою rsh; але rsh давно вже визнано не дуже безпечним, його повсюдно витісняє ssh.

  Якщо ви бажаєте скористатися ssh, вам слід встановити значення змінної середовища $`CVS_RSH` так, щоб вона вказувала на ssh на час користування клієнтом cvs. Cervisia з легкістю підтримує подібні налаштування.

  Зауважте, що Cervisia не зможе відповісти на можливі запити щодо пароля від комп’ютера сервера. Вам слід зробити так, щоб віддалений вхід працював без потреби у введенні пароля. За використання неналаштованого rsh цього можна досягти, наприклад, створенням файла `.rhosts` у вашій домашній теці зі списком всіх надійних вузлів (див. сторінку довідника (man) rsh).

  За використання ssh досягти потрібного результату можна копіюванням вашого відкритого ключа, щоб зберігається у файлі `identity.pub`, розташованому у теці `$`HOME`/.ssh/`, на сервер. У цьому випадку ключ має бути незашифрованим за допомогою пароля (див. сторінку довідника (man) ssh).

pserver

  Адреса сховища виглядає так: `:pserver:користувач@вузол.url.org:/шлях/до/сховища`

  За використання цього способу програма отримуватиме доступ до сервера за допомогою особливого протоколу з відносно простим розпізнаванням (`pserver` відповідає розпізнаванню за паролем). Перш ніж ви зможете скористатися таким сервером, вам слід дізнатися про ім’я користувача і пароль, вказані адміністратором сервера CVS, після цього вам слід увійти до системи. Зауважте, що ваше ім’я користувача, що використовуватиметься для розпізнавання за паролем на CVS, не обов’язково збігається з іменем користувача системи. Перш ніж отримувати доступ до сервера CVS, вам слід увійти до системи.

  Проєкти з відкритим кодом, зазвичай, використовують анонімний доступ CVS до кодів. Це означає, що ви з легкістю можете отримати найсвіжіші коди програм, змінювати і створювати латки (відмінності) відносно сховища без особистого облікового запису CVS. Зазвичай, для анонімного доступу CVS використовується розпізнавання за паролем (:pserver:), доступ надається лише для читання сховища: ви не зможете безпосередньо вивантажувати ваші зміни.

Якщо вам відомі метод доступу і адреса сховища, ви можете додати його до списку сховищ Cervisia:

Процедура 2.2. Додавання нового сховища

1. Відкрийте діалогове вікно Налаштувати доступ до сховищ за допомогою пункту меню Сховище → Сховища....

2. Натисніть кнопку Додати..., щоб відкрити діалогове вікно Додати сховище.

3. Введіть адресу сховища у поле Сховище:. Cervisia автоматично вимкне всі пункти діалогового вікна, які не відповідають вказаному вами способу доступу.

4. Якщо ви використовуєте зовнішній метод доступу до сховища, введіть назву віддаленої оболонки, якою ви бажаєте скористатися (наприклад ssh) у поле Використовувати віддалену оболонку (лише для сховищ :ext:):.

5. Натисніть кнопку Гаразд. Ви побачите сховище, параметри якого ви щойно ввели, у списку сховищ.

6. Якщо методом доступу до сховища, який ви щойно ввели, є розпізнавання за паролем (pserver), вам доведеться увійти до системи, перш ніж з’єднуватися з сервером. Наведіть вказівник миші на позначку сховища у списку і клацніть лівою кнопкою миші, щоб позначити її, а потім натисніть кнопку Увійти.... Введіть ваш пароль у діалоговому вікні, яке відкриє програма.

   Якщо ви ввели правильний пароль, у стовпчику Стан відповідного запису сховища pserver напис зміниться з Не зареєстровані на Зареєстровані.

7. Натисніть кнопку Гаразд, щоб застосувати внесені вами зміни або додати іншу адресу до списку. Cervisia зберігатиме довільну кількість введених вами адрес.

Імпортування модуля до сховища
Імпортування модуля до сховища

## Імпортування модуля до сховища

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

Існує два способи додавання проєкту до CVS:

- Імпортувати файли і теки до нового модуля за допомогою діалогового вікна імпорту Cervisia. Модулями є теки верхнього рівня у дереві сховища CVS, вони використовуються для розділення і впорядкування різних проєктів розробки програмного забезпечення у межах сховища.

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

### Важливо

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

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

Наприклад, припустімо, що ваш проєкт містить лише текстові файли і декілька зображень PNG (бінарні файли). Ви можете наказати CVS ігнорувати всі файли, назви яких відповідають шаблону `*.png`, а потім імпортувати всі інші файли як текстові. Ви також можете пересунути зображення до окремої теки, а потім імпортувати всі інші файли (як текстові файли). У будь-якому разі вам слід отримати тільки-но імпортований модуль до нової робочої копії, скопіювати відсутні файли і теки до неї, додати і надіслати їх до сховища, щоб завершити процес імпортування.

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

Рисунок 2.2. Знімок діалогового вікна імпорту Cervisia

У розділі Рисунок 2.2, «Знімок діалогового вікна імпорту Cervisia» ви можете знайти знімок діалогового вікна, за допомогою якого ви зможете імпортувати проєкт як модуль. Щоб відкрити діалогове вікно імпорту Cervisia, скористайтеся пунктом меню Сховище → Імпорт....

Сховище: ❶

  Введіть або оберіть зі спадного списку назву сховища CVS, також відому за назвою змінної, $`CVSROOT`. Вам потрібні права на запис до сховища, сховище також має бути належним чином ініціалізовано. Якщо сховища ще не існує, ви можете створити його за допомогою пункту меню Сховище → Створити....

  У спадному списку буде показано список сховищ, які ви раніше ввели за допомогою діалогового вікна Налаштувати доступ до сховищ. Якщо сховище є віддаленим, переконайтеся, що працює розпізнавання. Докладніше про це можна дізнатися з розділу «Доступ до сховища».

Модуль: ❸

  Назва модуля, у якому буде збережено проєкт. Після імпорту проєкт може бути отримано під цією назвою. Докладніші відомості можна отримати з розділу «Отримання модуля зі сховища». Крім того, цю назву буде використано для відповідної теки у сховищі.

Робоча тека:

  Тека верхнього рівня проєкту, який ви бажаєте імпортувати. Імпорт розпочнеться з цієї теки і продовжуватиметься рекурсивно.

Мітка виробника: ❹

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

Мітка випуску: ❺

  Цю мітку також зберігають з історичних міркувань для імпортування різних версій стороннього програмного забезпечення. Якщо ви не виконуватимете подібних дій, скористайтеся словом `start` або рядком `FOO_1_0`, де `FOO` — це назва вашого проєкту, а `1.0` є номером версії імпортованого випуску.

Ігнорувати файли:

  Якщо ви заповните це поле, команді cvs import буде передано додатковий параметр `-I `назви файлів``. Цей запис буде оброблено як відокремлений пробілами список шаблонів назв файлів, які слід ігнорувати. Загалом, кращим і надійнішим способом керувати тим, які файли буде передано до сховища, є створення теки, у якій міститимуться лише файли, які ви бажаєте імпортувати, а потім вже продовжувати. Але цей пункт може бути корисним, якщо проєкт містить файли, які типово ігноруються CVS, наприклад файли з назвою `core`. У такому випадку просто введіть у це поле символ `!`: таким чином можна перевизначити схему ігнорування файлів CVS, див. розділ «Файли, які ігноруються програмою».

Коментар: ❷

  У цьому полі можна вказати коментар щодо походження, використання, розробки тощо файлів, які ви імпортуєте.

Імпортувати всі як двійкові

  Якщо ви позначите цей пункт, всі файли буде імпортовано у двійковому режимі, тобто до команди cvs import буде додано параметр `-kb`.

Використовувати час модифікації файла як час імпорту

  Якщо ви позначите цей пункт, як час імпорту файла буде використано час його модифікації.

Після заповнення вами полів цієї форми і підтвердження даних натисканням кнопки Гаразд буде виконано таку команду CVS:

    cvs -d ❶сховище import -m "❷" ❸модуль ❹мітка_постачальника ❺мітка_випуску

Отримання модуля зі сховища
Отримання модуля зі сховища

## Отримання модуля зі сховища

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

Вам також слід знати назву гілки або випуску, якими ви бажаєте скористатися.

Гілки модуля є паралельними версіями модуля. Непоганим прикладом з життя, коли може виникнути потреба у цій можливості, є випуск проєкту розробки програмного забезпечення. Після головного випуску було виявлено вади у коді, які слід виправити, але користувачі також бажають, щоб ви додали до програми нові можливості. Дуже важко виконати обидва завдання одночасно, оскільки з додаванням нових можливостей, зазвичай, додаються нові помилки, що ускладнює виявлення старих помилок. Щоб розв’язати цю дилему, у CVS можна створити паралельну версію, яку ми називатимемо «гілку стабільного випуску», куди ви вноситимете лише виправлення вад, основну гілку (HEAD) можна використовувати для додавання нових можливостей.

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

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

Сховище:

  Назва сховища CVS, також відома за назвою ``$CVSROOT``. У спадному списку буде показано список сховищ, які ви раніше ввели за допомогою діалогового вікна Налаштувати доступ до сховищ. Якщо сховище є віддаленим, переконайтеся, що працює розпізнавання. Докладніше про це можна дізнатися з розділу «Доступ до сховища».

Модуль:

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

  Крім того, якщо у сховищі є файл ``$CVSROOT`/modules`, ви можете отримати список можливих модулів натисканням кнопки Отримати список.

  Зауважте, що можна отримати будь-яку з існуючих підтек модуля без отримання решти модуля. Просто введіть також і шлях до підтеки.

Мітка гілки:

  Назва версії або випуску, який ви бажаєте отримати. Якщо ви залишите це поле порожнім, Cervisia виконає спробу отримання основної (HEAD) версії.

Робоча тека:

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

Отримати як:

  Вибір цього пункту призведе до отримання файлів робочої копії до теки у робочій теці, назва якої відрізняється від назви теки цього модуля.

Експортувати лише

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

Рекурсивне отримання

  Отримувати усі файли і теки рекурсивно.

Головне вікно, перегляду стану файлів і оновлення
Головне вікно, перегляду стану файлів і оновлення

## Головне вікно, перегляду стану файлів і оновлення

Коли ви запустите Cervisia і відкриєте робочу копію за допомогою пункту меню Файл → Відкрити пісочницю..., ви побачите дві основні області головного вікна Cervisia: верхню область з ієрархічним (деревоподібним) переглядом поточної робочої копії і нижню область, яка використовується для показу команд CVS, які надсилає Cervisia для виконання своїх завдань, а також покаже дані виведені в результаті виконання цих команд.

Типово, Cervisia не показуватиме файли, що містяться у підтеках, отже вам доведеться натискати позначки тек, вміст яких ви бажаєте бачити. Щоб наказати програмі показувати всі файли робочої копії, скористайтеся пунктом меню Перегляд → Розгорнути файлове дерево. Щоб наказати програмі згорнути всі теки у робочій копії, скористайтеся пунктом меню Перегляд → Згорнути файлове дерево.

Відповідно до параметрів у ваших файлах `.cvsignore`, файли, які ви, зазвичай, не бажаєте включити до сховища, — зокрема об’єктні файли, — не буде показано у ієрархічному перегляді. Для кожного з файлів ви побачите відповідний стан. За типових параметрів, після відкриття пісочниці, цей стан буде «Невідомий», оскільки Cervisia відкладає отримання даних до того часу, коли ви оберете файли і теки, чий стан ви бажаєте оновити або переглянути, і скористайтеся пунктом Файл → Оновити або Файл → Стан. За використання цього підходу, ви матимете у розпорядженні мінімальний набір функціональних можливостей, навіть якщо ваш комп’ютер не має постійного з’єднання з сервером CVS.

Рисунок 2.4. Знімок основної області перегляду Cervisia

Пункти меню «Файл», зазвичай, працюють лише для файлів, які ви позначили. Ви також можете позначати теки. Скористайтеся пунктом меню Файл → Стан або натисніть клавішу F5. Cervisia виконає команду

    cvs update -n назви файлів

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

Змінений локально

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

Доданий локально

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

Вилучено локально

  Це означає, що ви додали файл до списку на вилучення, але він все ще зберігається у сховищі. Справжнє вилучення буде здійснено лише під час сеансу вивантаження.

Потребує оновлення

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

Потребує латання

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

Потребує об'єднання

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

Найновіший

  Означає, що файл ідентичний до своєї версії у сховищі.

Конфлікт

  Цю позначку буде показано, якщо на файл накладено позначку конфліктного. Можливо, під час попереднього оновлення файла ви не розв’язали певні конфлікти.

Не в CVS

  Означає, що файл не зареєстровано у сховищі CVS. Якщо ви бажаєте зробити його доступним для інших користувачів сховища, вам слід додати його до сховища. Якщо вам це не потрібно, ви можете додати цей файл до списку у вашому файлі `.cvsignore`.

Тепер, коли ви бачите огляд поточного стану CVS, у вас може виникнути бажання виконати оновлення. Позначте декілька файлів (або кореневу теку у ієрархії тек, що рівнозначне позначенню всіх файлів у цій теці). Після цього скористайтеся пунктом меню Файл → Оновити (Звичайно ж, ви можете скористатися цим пунктом і на початку сеансу роботи зі сховищем). Для деяких з файлів стан може змінитися. Зазвичай, після оновлення ці файли матимуть стан «Потребує латання» або «Потребує оновлення». Отже у стовпчику стану можуть з’явитися такі нові повідомлення про стан:

Оновлений

  Буде показано, якщо файл було оновлено у сховищі.

Латаний

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

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

Розділ 3. Робота з файлами
Робота з файлами

# Розділ 3. Робота з файлами

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

Рисунок 3.1. Знімок контекстного меню Cervisia

Доступ до найвживаніших дій можна також отримати з контекстного меню, яке можна відкрити наведенням вказівника миші на позначку файла у ієрархічному перегляді з наступним клацанням правою кнопкою миші. Рисунок 3.1, «Знімок контекстного меню Cervisia» показує контекстне меню головного вікна Cervisia.

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

## Додавання файлів

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

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

Cervisia віддає команду

    cvs add назви файлів

Якщо цю дію буде виконано успішно, у стовпчику стану доданих файлів має з’явитися напис «Додано до сховища».

### Застереження

У CVS не було передбачено змістовного керування версіями для бінарних файлів. Наприклад, об’єднання бінарних файлів, зазвичай, не має сенсу. Крім того, типово CVS виконує розгортання ключових слів (наприклад для рядків на зразок `$Revision: 1.6 $`) під час передавання файла. У бінарних файлах подібні заміни можуть пошкодити файл і зробити його повністю непридатним для використання.

Для того, щоб вимкнути описану вище поведінку програми, вам слід передавати бінарні файли (або інші файли, зокрема зображення у форматах Postscript або PNG) за допомогою пункту меню Файл → Додати двійковий.... Програма відкриє діалогове вікно Додати до CVS зі списком позначених вами бінарних файлів і попросить підтвердити ваш вибір. Натисніть кнопку Гаразд.

Cervisia віддає команду

    cvs add -kb назви файлів

Вилучення файлів
Вилучення файлів

## Вилучення файлів

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

    cvs remove -f назви файлів

Після цього зміни у пісочниці має бути надіслано, ймовірно, разом з іншими змінами у проєкті.

### Примітка

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

Додавання і вилучення тек
Додавання і вилучення тек

## Додавання і вилучення тек

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

Навзамін, у CVS вважається, що теки «не існує» у певній версії проєкту, якщо ця тека порожня. Примусово застосувати подібне вилучення можна передаванням параметра `-P` командам cvs update і cvs checkout. Увімкнути додавання відповідного параметра можна позначенням пункту меню Параметри → Вилучати порожні теки при оновленні.

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

    cvs add назва каталогу

Надсилання файлів
Надсилання файлів

## Надсилання файлів

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

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

Рисунок 3.2. Знімок діалогового вікна надсилання файлів Cervisia

Програма відкриє діалогове вікно, у верхній частині якого буде показано список вибраних файлів, а у нижній — повідомлення журналу для внесених вами змін. Cervisia може допомогти вам з пошуком потрібного повідомлення журналу у декілька способів: по-перше, ви можете ви можете навести вказівник миші на позначку файла і двічі клацнути лівою кнопкою миші, або натиснути клавішу Enter, щоб переглянути зміни, внесені вами до файла. По-друге, програма покаже вам спадний список використаних вами раніше повідомлень журналу. По-третє, у це діалогове вікно інтегровано редактор записів журналу Cervisia, який описано нижче. Після натискання у цьому діалоговому вікні кнопки «Гаразд, буде виконано команду

    cvs commit -m повідомлення назви файлів

### Примітка

Типовою помилкою, з якою ви можете зіткнутися під час надсилання є помилка Up-to-date check failed. Поява подібного повідомлення означає, що хтось вніс у сховище зміни з часу, коли ви востаннє оновлювали свою робочу копію; або, з технічної точки зору, що ваша версія `BASE` не є найновішою у власній гілці. У таких випадках CVS відмовляється об’єднувати ваші зміни з версією у сховищі. Для вирішення проблеми слід спочатку виконати оновлення, розв’язати всі конфлікти і повторити спробу надсилання. Звичайно ж, якщо ви працюєте над проєктом з розробки програмного забезпечення, варто переконатися, що після оновлення програма здатна працювати, — у іншому випадку можливі суперечності між вашою версією і іншими версіями можуть призвести до повної недієздатності програми.

### Примітка

Іншою поширеною помилкою, яка призводить до повідомлення про помилку Sticky tag 'X' for file 'X' is not a branch (Липка мітка 'X' для файла 'X' не є гілкою). Таке трапляється, якщо ви намагаєтеся надіслати файли, який ви раніше привели до певної модифікації або мітки за допомогою команди

    %cvs update -r X

(яка, наприклад, виконується, коли ви обираєте пункт меню Додаткові → Оновити до мітки/дати...). У такому випадку мітка файла стає липкою (постійною), тобто будь-які наступні оновлення не призводитимуть до встановлення новішої версії для гілки. Якщо ви маєте намір надсилати нові версії до цієї гілки, вам слід оновити мітку гілки до надсилання даних.

За допомогою Cervisia дуже просто створювати і підтримувати файл ChangeLog у форматі, який рекомендовано для програмних проєктів GNU. Щоб скористатися можливостями програми, оберіть пункт меню Файл → Вставити запис до файла змін.... Якщо у теці верхнього рівня вашої пісочниці вже існує файл з назвою `ChangeLog`, цей файл буде відкрито і ви зможете змінити його вміст. На початку програма додасть у цей файл запис з поточною датою і вашим іменем користувача (яке можна налаштувати у спосіб, описаний у розділі «Загальне»). Після внесення потрібних змін діалогове вікно можна закрити натисканням кнопки Гаразд. У наступному діалоговому вікні передавання змін, яке ви відкриєте, повідомлення журналу збігатиметься з повідомленням, яке ви вписали до файла ChangeLog.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Розділ 4. Отримання відомостей про файли і створення латок
Отримання відомостей про файли і створення латок

# Розділ 4. Отримання відомостей про файли і створення латок

## Спостереження за різницями між версіями

У Cervisia існує декілька місць, з яких ви можете викликати вікно, у якому буде показано відмінності між версіями певного файла:

- У основній області перегляду ви можете скористатися пунктом меню Перегляд → Відмінність від сховища (BASE).... Дані, які вам буде показано, засновано на результатах роботи команди cvs diff, яка виводить всі рядки, які відрізняються у вашій пісочниці і у версії, яку ви отримали зі сховища (її також називають `BASE`). Цей пункт меню буде корисним перед передаванням файла для створення відповідного повідомлення журналу.

- Ви можете переглянути відмінності між версією у вашій пісочниці і версією у головній гілці розробки (яка також називається `HEAD`) за допомогою пункту меню Перегляд → Відмінність від сховища (HEAD)....

- Ви можете переглянути відмінності між двома останніми версіями вибраного файла за допомогою пункту меню Перегляд → Остання зміна....

- Доступ до пунктів меню Відмінність від сховища (BASE)..., Відмінність від сховища (HEAD)... і Остання зміна... можна отримати за допомогою основного контекстного меню, яке викликається наведенням вказівника миші на позначку потрібного файла з наступним клацанням правою кнопкою миші.

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

- За допомогою діалогового вікна перегляду журналу ви можете позначити дві модифікації певного файла і викликати діалогове вікно, у якому буде показано відмінності між ними (див. «Перегляд журналів CVS»).

Як ви мабуть і очікували, Cervisia не просто покаже вам вивід команди diff, відданої з термінала, — програма покаже вам відмінності у графічному вигляді, як це показано на знімку Рисунок 4.1, «Знімок діалогового вікна різниць Cervisia».

Рисунок 4.1. Знімок діалогового вікна різниць Cervisia

Текст, показаний у діалоговому вікні буде покращеним варіантом тексту, який виводить команда diff, викликана з параметром `-u`. Ви зможете переглянути відмінні версії у двох ділянках вікна, рядки у яких буде показано таким чином, щоб ви змогли провести порівняльний аналіз. Це означає, що, якщо там, де текст було додано або вилучено, у відповідному вікні ви побачите порожні рядки з позначкою `+++++`, яку буде показано ліворуч. Крім того, ви зможете бачити номер кожного з рядків у лівому стовпчику.

У другому стовпчику області вікна, розташованої праворуч, ви зможете побачити, які саме зміни було внесено. Серед можливих типів `Додати`, `Вилучити` і `Змінити`. Відповідні рядки буде позначено синім, зеленим і червоним кольором. У середній частині діалогового вікна ви побачите стиснуте зображення розподілу кольорових позначок. Таким чином, ви зможете стежити за всіма змінами у файлі. Крім того, ви можете скористатися розташуванням розфарбованих областей на стиснутому перегляді для переходу до відповідних фрагментів коду за допомогою смужок гортання.

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

Настанови щодо способів налаштування діалогового вікна відмінностей можна знайти у розділі «Перегляд різниці».

Створення латок
Створення латок

## Створення латок

Іноді у вас може виникнути потреба у надсиланні внесених вами змін для рецензування перед їх надсиланням до сховища, у вас також може не бути доступу на запис до сховища (отже, ви просто не зможете надіслати зміни). У CVS передбачено стандартні формати для поширення змін у вашій робочій копії у такий спосіб, щоб інші люди змогли переглянути ваші зміни, випробувати їх на власній робочій копії і внести їх до сховища CVS. Файл, у якому міститимуться подібні зміни називається латкою, його можна створити командою cvs diff у той самий спосіб, у який створюються файли відмінностей у розділі «Спостереження за різницями між версіями». Поширення латок замість набору файлів зменшує обсяг даних, які слід передати, з латками легше працювати, оскільки ви можете надіслати єдиний файл з латкою, у якому міститимуться зміни у багатьох файлах кодів.

Доступ до цієї можливості у Cervisia можна отримати за допомогою пункту меню Додаткові → Створити латку для сховища....

### Важливо

За допомогою пункту меню Створити латку для сховища... можна створити латку, яка міститиме всі зміни у всіх файлах вашої робочої копії (пісочниці) порівняно з `BASE` сховища. Тому вибір файлів у основній області перегляду програми не вплине на перелік змін у створеному файлі латки.

Іншою можливістю є позначення одного файла у основній області перегляду з наступним використанням пункту Переглянути журнал... з меню Перегляд або наведення вказівника миші на позначку файла з наступним клацанням правою кнопкою миші і вибором пункту Переглянути журнал... з контекстного меню. Обидві ці послідовності дій призведуть до відкриття вікна перегляду журналу. Вам слід обрати версію, до якої ви бажаєте створити латку як модифікацію «A», а потім натиснути кнопку Створити латку.... Програма створить латку з відмінностями між позначеним файлом у вашій робочій копії і версією, обраною як модифікація «A».

Перш ніж розпочати створення латки, Cervisia відкриє діалогове вікно, за допомогою якого ви зможете налаштувати формат виводу.

Рисунок 4.2. Знімок діалогового вікна накладання латки у Cervisia

Формат виводу

  Можна використовувати один з трьох форматів виводу:

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

  Уніфікований: найпоширеніший формат обміну латками. За використання уніфікованого формату для запису відмінностей, окрім номерів рядків, буде використано рядки контексту. Додавання цих рядків зробить процес застосування латок надійнішим. У цьому форматі відмінності буде викладено у компактній і придатній для читання формі, з полем заголовка для кожного з файлів і окремими розділами (шматками) для кожної з відмінностей. Рядки контексту, які буде додано до кожної відмінності, спростять читання змін. За використання уніфікованого формату виводу для позначення змін буде використано символи «+» і «-».

  Контекстний, за використання цього формату буде виведено ті самі дані, що і за використання уніфікованого формату, але у менш компактному вигляді. У файла виводу у контекстному форматі зміни буде позначено символом «!».

Кількість рядків контексту:

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

Параметри ігнорування

  Тут ви можете вказати зміни, які програма вважатиме відмінностями під час створення латки.

Після визначення формату виводу Cervisia створює латку і відкриває діалогове вікно Зберегти як. За допомогою цього діалогового вікна ви зможете вказати назву файла латки і його розташування.

Перегляд приміток до файла
Перегляд приміток до файла

## Перегляд приміток до файла

За допомогою команди cvs annotate у CVS можна побачити, — для кожного з рядків будь-якого файла, — хто останнім змінив цей рядок. Результати виконання цієї команди можуть бути корисними для визначення того, хто саме змінив поведінку програми, або отримання даних про те, кого саме слід просити про зміну або усування вади у коді.

У Cervisia передбачено доступ до цієї функціональної можливості, але програма значно покращує перегляд даних, роблячи його інтерактивним. Відкрити перегляд приміток можна за допомогою пункту меню Перегляд → Примітка.... Іншим способом відкриття цього діалогового вікна є натискання кнопки Примітка у діалоговому вікні перегляду журналу, за допомогою якого ви зможете обрати версію файла, дані щодо якої ви бажаєте переглянути. У розділі Рисунок 4.3, «Знімок діалогового вікна додавання коментарів у Cervisia» ви можете переглянути знімок цього діалогового вікна.

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

У діалоговому вікні приміток ви зможете побачити область з вмістом останньої версії вибраного файла (або версії модифікації «A», якщо ви відкрили це діалогове вікно з діалогового вікна перегляду журналу). У стовпчиках перед текстом ви бачитимете дані, пов’язані з останньої зміною кожного з рядків. У першому стовпчику буде показано номери рядків. У другому стовпчику ви побачите ім’я автора і номер модифікації. Нарешті у третьому стовпчику ви побачите справжній вміст відповідного рядка.

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

Перегляд журналів CVS
Перегляд журналів CVS

## Перегляд журналів CVS

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

- Переглядати модифікацію, автора, дату, версію, повідомлення, яким супроводжувалося надсилання, і мітки для кожної з версій позначеного файла.

- Переглядати графічне представлення у вигляді дерева, у якому програма покаже всі версії і випуски позначеного файла.

- Переглядати будь-яку з версій позначеного файла (за допомогою типової програми).

- Переглядати будь-яку версію позначеного файла з примітками до вмісту

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

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

Рисунок 4.4. Знімок діалогового вікна перегляду журналів Cervisia

Ви можете переглянути журна у тому вигляді, у якому його виводить команда cvs log (Вивід CVS), у вигляді Дерева або у формі Списку. Вибір типу перегляду, звичайно ж, є справою ваших уподобань і залежить від типу даних, які вам потрібні. За використання деревоподібного перегляду спрощується визначення того, що було зроблено у різних гілках різними розробниками. На панелях підказок ви зможете переглянути відповідні повідомлення журналу. Список за своєю природою є лінійним, а отже ви не зможете побачити у ньому розподілу на гілки. З іншого боку у ньому ви зможете ознайомитися у сконцентрованій формі з іншими даними, пов’язаними з файлом, зокрема з часом внесення кожної зміни і початковою частиною повідомлення журналу. Дані виводу CVS повні, але мають значний об’єм, їх важко читати. Щоб частково зняти ці проблеми, у програмі передбачено можливість пошуку у виводі CVS за допомогою натискання кнопки Знайти....

Щоб отримати докладнішу інформацію щодо певної модифікації, ви можете натиснути відповідну позначку у списку або ієрархічному (деревоподібному) перегляді. Після цього поля у середній частині діалогового вікна буде заповнено відповідними даними, які буде виведено командою cvs log. Ви можете позначити дві модифікації, які називаються у програмі «A» і «B», і прослідкувати за ними за допомогою функціональних можливостей, які надають у ваше розпорядження кнопки діалогового вікна. Модифікацію «A» можна обрати клацанням лівою кнопкою миші, а модифікацію «B» — клацанням середньою кнопкою. У перегляді списку ви також можете пересуватися модифікаціями за допомогою клавіш зі стрілочками. Для того, щоб позначити модифікації «A» і «B», ви можете скористатися клавіатурними скороченнями Ctrl+A, Ctrl+B, відповідно. За використання перегляду Вивід CVS ви можете натискати для позначення модифікації мітки Вибрати як модифікацію A і Вибрати як модифікацію B.

Якщо ви натиснете кнопку Примітка, програма відкриє діалогове вікно, у якому буде показано текст файла у модифікації, позначеній як «A». У кожному рядку буде показано дані про те, хто останнім змінив цей рядок, та про те, під час якої з модифікацій це сталося. Докладніше можна дізнатися про примітки до версій у розділі «Перегляд приміток до файла».

Якщо ви натиснете кнопку Порівняння, програма виконає команду cvs diff і відкриє діалогове вікно, у якому буде показано всі відмінності між позначеними модифікаціями. Якщо ви позначите модифікацію «A», але не позначите модифікації «B», Cervisia створить перелік відмінностей між версією файла, позначеною як модифікація «A», і версією файла з робочої копії. Це надасть вам змогу переглянути відмінності між вашою версією файла і будь-якою з доступних у CVS версій. Щоб полегшити перегляд змін, буде використано різні кольори для доданих, вилучених і змінених рядків. Докладніше дізнатися про перегляд відмінностей можна за допомогою розділу «Спостереження за різницями між версіями».

Якщо ви натиснете кнопку Створити латку..., програма відкриє діалогове вікно, у якому ви можете визначити параметри форматування для створення файла, що міститиме всі відмінності між двома позначеними модифікаціями. Якщо ви позначили модифікацію «A», але не позначили модифікацію «B», Cervisia створить файл відмінностей між версією файла, позначеною як модифікація «A», і версією файла у робочій копії. Ви зможете створити латку або файл відмінностей між вашою версією файла і будь-якою з версій, доступних у CVS. Після налаштування формату латки у діалоговому вікні і натискання кнопки Гаразд, програма виконає команду cvs diff для створення файла відмінностей. Після цього буде відкрито діалогове вікно Зберегти як. Введіть назву файла латки, який має створити Cervisia, і його адреси, щоб зберегти його. Докладніше про створення латок та параметри форматування латок можна дізнатися з розділу «Створення латок».

Якщо ви натиснете кнопку Перегляд, Cervisia отримає версію, позначену як «A» і покаже вміст відповідного файла за допомогою типової програми, визначеної для перегляду файлів відповідного типу.

Натискання кнопки Закрити призведе до закриття цього діалогового вікна, — фокус повернеться до основного вікна програми.

Для створення журналу, який є джерелом даних для діалогового вікна Журнал CVS, Cervisia виконує таку команду:

    cvs log назва файла

Перегляд журналу
Перегляд журналу

## Перегляд журналу

Якщо у сховищі, яким ви користуєтеся, увімкнено запис журналу, Cervisia зможе показати вам журнал певних подій на зразок отримань, вивантажень, створення випусків, оновлень і випусків. Скористайтеся пунктом Історія з меню Перегляд, і Cervisia виконає таку команду:

    cvs history -e -a

### Примітка

Ця команда отримає повний журнал, тобто список подій для всіх користувачів і для всіх модулів, з сервера. Подібний журнал може бути досить об’ємним.

Після цього ви зможете переглянути список подій, впорядкованих за датою. У другому стовпчику списку буде показано тип події:

- Отримання — користувач, ім’я якого показано у стовпчику «Автор», отримав певний модуль

- Мітка — користувач використав команду cvs tag. Зауважте, що використання команди cvs tag (її програма виконує після вибору пункту меню Cervisia Додаткові → Мітка/Гілка...) не буде записано у базі даних журналу дій. Причини такої поведінки є історичними (див. ЧаП CVS).

- Випуск — користувач випустив певний модуль. Зазвичай, цю команду використовують рідко, вона не має великого сенсу.

- Оновлення, вилучено — користувач виконав оновлення файла, який було вилучено зі сховища. Внаслідок цього файл було вилучено з його робочої копії.

- Оновлення, скопійоване — користувач оновив файл. Нову версію було скопійовано до робочої копії.

- Оновлення, об’єднано — користувач оновив файл. Зміни у версії зі сховища було об’єднано з робочою копією.

- Оновлення, конфлікт — користувач оновив файл, було виявлено конфлікт з власною модифікацією користувача.

- Передача, змінено — користувач передав змінений файл.

- Передача, вилучено — користувач вилучив файл і передав ці зміни.

- Передати, вилучене — користувач вилучив файл і передав ці зміни.

Рисунок 4.5. Знімок діалогового вікна історії Cervisia

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

- Показати події передачі — показувати передачі даних до сховища

- Показати події отримання — показувати отримання зі сховища

- Показати події міток — показувати події зі створення випусків

- Показати інші події — показувати події, які не належать до жодної з перелічених вище категорій

- Тільки користувач — показувати лише події, які були наслідком дій певного користувача

- Тільки назви файлів, які збігаються з — фільтрувати назви файлів за вказаним формальним виразом

- Тільки теки, які збігаються з — фільтрувати назви тек за вказаним формальним виразом

Ось список спеціальних символів, які буде розпізнано інструментом обробки формальних виразів:

- `x*` відповідає будь-якій кількості символів `x`.

- `x+` відповідає одному або декільком символам `x`.

- `x?` відповідає одному символу `x` або його відсутності.

- `^` відповідає початку рядка.

- `$` відповідає кінцю рядка.

- `[a-cx-z]` відповідає набору символів, наприклад, у цьому випадку набір складається з a,b,c,x,y,z.

Розділ 5. Додаткові можливості
Додаткові можливості

# Розділ 5. Додаткові можливості

## Оновлення до випуску, гілки або певної дати

Гілки модуля є паралельними версіями модуля. Непоганим прикладом з життя, коли може виникнути потреба у цій можливості, є випуск проєкту розробки програмного забезпечення. Після головного випуску було виявлено вади у коді, які слід виправити, але користувачі також бажають, щоб ви додали до програми нові можливості. Дуже важко виконати обидва завдання одночасно, оскільки з додаванням нових можливостей, зазвичай, додаються нові помилки, що ускладнює виявлення старих помилок. Щоб розв’язати цю дилему, у CVS можна створити паралельну версію, яку ми називатимемо «гілку стабільного випуску», куди ви вноситимете лише виправлення вад, основну гілку (HEAD) можна використовувати для додавання нових можливостей.

Мітки використовуються для позначення версії проєкту. CVS позначає версію кожного файла міткою, отже, коли ви отримуєте або оновлюєте копію до певної мітки, ви завжди отримуватимете однакові версії файлів. Тому, на відміну від гілок, мітки є сталими: ви не можете розробляти мітку. Мітки корисні для позначення випусків, значних змін у коді тощо.

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

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

### Застереження

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

Рисунок 5.1. Знімок діалогового вікна оновлення до випуску Cervisia

Оновлення до гілки

  Позначте цей пункт, щоб оновити копію до певної гілки. Введіть назву гілки у спадному текстовому полі (або натисніть кнопку Отримати список, щоб отримати список гілок з сервера CVS, і оберіть потрібну вам гілку зі спадного списку).

Оновлення до випуску

  Позначте цей пункт, щоб оновити копію до певної мітки. Введіть назву мітки у спадному текстовому полі (або натисніть кнопку Отримати список, щоб отримати список міток з сервера CVS, і оберіть потрібну вам мітку зі спадного списку).

Оновлення до дати

  Позначте цей пункт, щоб оновити копію до певної дати. У полі, розташованому нижче, ви можете ввести дату у широкому діапазоні форматів дат. Одним з можливих форматів є `yyyy-mm-dd`, де `yyyy` — це рік, `mm` — місяць (цифрами), а `dd` — це день. Крім того, ви можете скористатися фразами англійською, зокрема `yesterday` або `2 weeks ago`.

### Примітка

Оновлення до мітки або дати зробить їх «липкими», тобто ви не зможете надіслати до сховища подальші модифікації цих файлів (якщо мітка не є міткою гілки). Щоб повернутися до головної гілки, скористайтеся пунктом меню Додаткові → Оновити до HEAD.

Команда, яку буде віддано для оновлення до гілки або випуску, буде такою:

    cvs update -r мітка

Команда, яку буде віддано для оновлення до дати, буде такою:

    cvs update -D дата

Команда, яку буде віддано для оновлення головної гілки (HEAD), буде такою:

    cvs update -A

Робота з мітками випусків і гілок
Робота з мітками випусків і гілок

## Робота з мітками випусків і гілок

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

Просте встановлення мітки — це те, що ви зазвичай робите під час створення випуску. Це потрібно для того, що ви могли будь-коли повернутися до стану проєкту у відповідний час. Міткам, зазвичай, надають назви, у яких вказують назву проєкту і номер версії. Наприклад, доступ до Cervisia 1.0 можна отримати за міткою `CERVISIA_1_0`. Cervisia повністю виконує строгі правила CVS щодо побудови коректної назви мітки. Назва має починатися з літери і може містити літери, цифри, дефіси і символи підкреслювання.

Зазвичай, у вас має виникнути потреба у створенні мітки для всього проєкту (хоча, звичайно ж, CVS надає вам змогу створити мітку для підмножини списку файлів). Для прикладу, позначте теку верхнього рівня у області перегляду і скористайтеся пунктом меню Додаткові → Мітка/Гілка. Після цього введіть назву мітки, натисніть клавішу Enter, ось і все.

Створення гілки нічим не складніше: у діалоговому вікні позначте пункт Створити гілку з цією міткою. Крім того, ви можете вилучити існуючу мітку: скористайтеся пунктом меню Додаткові → Вилучити мітку у основному вікні програми.

Іншим аспектом створення гілок є об’єднання версій з певної гілки та поточної гілки. Якщо ви маєте намір виконати таке об’єднання, скористайтеся пунктом меню Додаткові → Об’єднати.... У діалоговому вікні, яке відкриється, ви зможете обрати один з двох варіантів:

Ви можете об’єднати всі зміни, внесені у гілці, до поточної гілки. У такому випадку позначте пункт Об’єднати з гілок і вкажіть гілку, з якою ви бажаєте виконати об’єднання. Cervisia виконає команду

    cvs update -j мітка_гілки

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

    cvs update -j мітка_гілки_1 -j мітка_гілки_2

Користування спостерігачами
Користування спостерігачами

## Користування спостерігачами

Спостерігач — це загальноприйнята назва для функціональної можливості CVS, використання якої надає користувачам сховища змогу дізнаватися про зміну певного файла або про те, що розробник почав редагування файла. Використання спостерігачів потребує того, щоб файл ``$CVSROOT`/CVSROOT/notify` було налаштовано належним чином. Це налаштування ми не будемо тут обговорювати, якщо вам потрібні додаткові відомості щодо налаштування з точки зору адміністратора, прочитайте одну з книжок, назви яких наведено у додатку.

Для забезпечення підтримки спостереження Cervisia існує шість пунктів меню.

Щоб додати спостерігач до одного або декількох файлів, скористайтеся Додаткові → Додати спостерігачів.... За допомогою діалогового вікна, яке буде відкрито, ви зможете обрати тип події, які підтримує CVS і про яку має сповіщати вас CVS. Наприклад, якщо ви бажаєте, щоб програма сповіщала вас лише про ті випадки, коли файл було передано, позначте пункти Тільки і Передачі. Якщо ви бажаєте отримувати сповіщення про будь-яку подію, яка стосується позначених файлів, позначте пункт Все. Після натискання кнопки Гаразд програма виконає таку команду:

    cvs watch add -a commit назви файлів

або подібний параметр, який залежить від подій, які ви обрали для перегляду.

Якщо ви більше не цікавитеся змінами у певних файлах, ви можете вилучити спостерігачі для цих файлів. Для цього можна скористатися пунктом меню Додаткові → Вилучити спостерігача.... У діалоговому вікні, яке буде відкрито, ви побачите ті самі пункти, які ви вже бачили, коли додавали спостерігача. Після натискання кнопки Гаразд Cervisia виконає таку команду:

    cvs watch remove назви файлів

можливо, з параметром `-a` для вибраних подій.

Нарешті, ви можете отримати список людей, які спостерігають за файлами. Скористайтеся пунктом Додаткові → Показати спостерігачів. За допомогою цього пункту меню ви можете наказати програмі виконати таку команду:

    cvs watchers назви файлів

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

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

    cvs edit назви файлів

Ця команда надішле сповіщення всім, хто обрав спостерігач `зміни` для цього файла. Крім того, ця команда зареєструє вас як редактора відповідного файла. Ви можете отримати список всіх редакторів певного файла за допомогою пункту меню Додаткові → Показати редакторів. Використання цього пункту меню рівноцінне виконанню такої команди:

    cvs editors назви файлів

Сеанс редагування буде автоматично завершено після передавання файла, який редагує розробник. Після цього всім користувачам, які зареєстрували спостерігачі для файла, буде надіслано сповіщення про `завершення редагування`. Звичайно ж, іноді ви передумаєте передавати файл, перервати сеанс редагування і повернутися до попередньої версії файла. Досягти цього можна за допомогою пункту меню Додаткові → Закінчити редагування. Зауважте, що Cervisia не запитуватиме у вас підтвердження. Це означає, що якщо ви скористаєтеся цим пунктом меню, всію роботу, виконану з часу вибору пункту меню Додаткові → Редагувати файли буде втрачено. Якщо бути точним, Cervisia виконає таку команду:

    echo y | cvs unedit назви файлів

Вище ми обговорювали лише випадок, коли встановлення міток редагування або завершення редагування відбувається розробниками у добровільному порядку. Крім того, CVS підтримує модель, за використання якої користування цими командами є примусовим. Відповідною командою, призначеною для вмикання такої моделі, є cvs watch on. Ми не будемо докладно обговорювати цю команду, оскільки здебільшого цією командою користуються адміністратори сховища. Важливою особливістю з точки зору розробника є те, що, коли у проєкті примусово використовуються позначки редагування, робочі копії отримуються як придатні лише для читання. Це означає, що, типово, ви не зможете редагувати файл (якщо не скористаєтеся трюками на зразок chmod). Лише після того, як ви скористаєтеся пунктом меню Додаткові → Редагувати файли, файл стане придатним для запису. Файл знову стане придатним лише для читання після того, як ви передасте файл або скористаєтеся пунктом меню Додаткові → Закінчити редагування.

У інтерфейсі редактора Cervisia передбачено і інший спосіб, який допоможе вам працювати з проєктами, у яких використовують примусове встановлення міток редагування. Якщо ви тільки-но запустили редактор для файла, позначеного лише для читання, подвійним клацанням лівою кнопкою миші або за допомогою пункту меню Файл → Зміни, ви не зможете згодом зберегти внесені вами зміни. Звичайно ж, для цього є причина: кожного разу, коли ви бажаєте змінити файл, вам слід спочатку виконати команду cvs edit, щоб усі люди, які спостерігали за файлом, отримали сповіщення про те, що ви працюєте над цим файлом.

У такому випадку радимо вам позначити пункт меню Параметри → За потреби виконати cvs edit автоматично. Якщо ви це зробите, кожного разу, коли ви викликатимете вікно редагування файла подвійним клацанням лівою кнопкою миші на його позначці, Cervisia виконуватиме команду cvs edit, перш ніж запускати редактор. Після цього ви зможете редагувати файл у звичайному режимі. Після завершення редагування ви зможете надіслати змінені файли, — у сховищі вони знову стануть придатними лише для читання.

Блокування
Блокування

## Блокування

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

У інших системах керування версіями, — зокрема RCS і SourceSafe використовується інша модель. Якщо розробник бажає змінити певний файл, він має заблокувати його. Блокувати певний файл може одночасно лише один розробник. Після завершення редагування блокування буде знято. З іншого боку, за використання цієї моделі конфлікти ніколи не трапляться. З іншого боку, над файлом не можуть працювати одразу декілька розробників, навіть якщо внесені ними зміни не впливатимуть одна на одну. Це може значно сповільнити розробку. Ми не будемо обговорювати всі організаційні переваги обох підходів. Крім того, ми вже згадували, що хоча у CVS і передбачено певну підтримку блокування, — цей спосіб не є основним способом роботи з CVS. Вам не слід використовувати всі ці можливості, якщо ви не впевнені, що ваш інструмент керування проєктом їх підтримує.

За допомогою Cervisia ви можете заблокувати файли. Оберіть бажані файли у головній області перегляду програми. Скористайтеся пунктом меню Додаткові → Заблокувати файли. Програма виконає команду

    cvs admin -l назви файлів

Зворотного ефекту можна досягти за допомогою пункту меню Додаткові → Розблокувати файли. Програма виконає команду

    cvs admin -u назви файлів

Розділ 6. Налаштування Cervisia
Налаштування Cervisia

# Розділ 6. Налаштування Cervisia

У Cervisia передбачено можливість налаштування програми у різні способи відповідно до ваших потреб і уподобань. Деякі з параметрів, потреба у зміні яких може у вас виникнути, може бути безпосередньо змінено за допомогою меню Параметри.

## Загальне

Ім'я користувача для редактора файла змін:

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

Шлях до файла програми CVS або 'cvs':

  Тут ви можете вказати назву (або шлях) клієнта командного рядка cvs. Типово, Cervisia буде використано виконуваний файл CVS, який буде знайдено за шляхом, вказаним змінною середовища `$PATH`.

Перегляд різниці
Перегляд різниці

## Перегляд різниці

Кількість рядків в діалозі порівняння:

  Для діалогового вікна відмінностей Cervisia використовує параметр `-U`, переданий команді diff. За його використання diff покаже лише обмежену кількість рядків навколо кожного з діапазонів відмінностей (рядків контексту). Тут ви можете вказати аргумент параметра `-U`.

Додаткові параметри для cvs-порівняння:

  Тут ви можете вказати додаткові аргументи для команди diff. Поширеним прикладом є параметр `-b`, за використання якого diff ігнорувати зміни у кількості пробілів.

Ширина вкладки у діалозі порівняння:

  У діалоговому вікні відмінностей символи табуляції, які міститимуться у вашому файлі або у виводі команди diff, буде розгорнуто до фіксованої кількості символів пробілу. Типово, кожен символ табуляції буде замінено вісьмома пробілами, але ви можете змінити це значення.

Зовнішня оболонка для diff:

  Коли ви користуєтеся будь-якою з функціональних можливостей, які відкривають діалогове вікно відмінностей, зокрема пунктом меню Перегляд → Відмінність від сховища..., Cervisia викликає свою вбудовану оболонку diff. Якщо ви бажаєте скористатися іншою оболонкою, на зразок Kompare, TkDiff або xxdiff, ви можете ввести у це поле назву файла і шлях для нього.

Стан
Стан

## Стан

Під час відкриття пісочниці з віддаленого сховища автоматично запускати команду, яка відповідає пункту меню Файл->Стан

  Якщо ви позначите цей пункт, кожного разу, коли ви відкриватимете віддалену пісочницю, програма виконуватиме команду, яка виконується пунктом меню Файл → Стан. Виконання цієї команди може тривати певний час, а також потребує з’єднання з сервером для віддалених сховищ (що робить її непридатною для автономного використання).

Коли відкривається пісочниця з віддаленого сховища, автоматично запускати команду Файл->Стан

  Якщо ви позначите цей пункт, вибір пункту меню Файл → Стан буде виконано кожного разу, коли ви відкриватимете локальну пісочницю.

Додатково
Додатково

## Додатково

Тайм-аут, після якого з'являється діалогове вікно поступу (в мс):

  Практично всі команди CVS, запущені у пісочниці, яка належить віддаленому сховищу, потребує з’єднання з сервером CVS. На їх виконання може вплинути затримка у мережевому з’єднанні або високе навантаження на сервер. З цієї причини, для команд на зразок Перегляд → Відмінність від сховища... Cervisia відкриває діалогове вікно, у якому повідомляє вам про те, що команда все ще виконується, і надає вам змогу перервати її виконання. Крім того, у цьому діалоговому вікні буде показано повідомлення про помилку від CVS. Оскільки це діалогове вікно може з часом вам набриднути, його буде показано лише після певного проміжку часу, типово, 4 секунд. За допомогою цього поля ви можете змінити це значення.

Типовий рівень стиснення:

  Клієнт cvs стискає файли і латки під час їх передавання мережею. За допомогою параметра командного рядка `-z` можна вказати рівень стиснення. Ви можете налаштувати Cervisia так, щоб програма використовувала певний рівень стиснення за допомогою цього поля. Встановлене значення буде використано лише як типове; крім нього є параметр окремого сховища, який можна змінити за допомогою пункту меню Сховище → Сховища....

Використовувати вже існуючий або запустити новий процес ssh-agent

  Позначте цей пункт, якщо ви користуєтеся сховищами ext (rsh), оболонкою віддаленого керування ssh для обміну даними для сховища і ssh-agent для керування вашими ключами.

Вигляд
Вигляд

## Вигляд

Шрифт для вікна протоколу...

  Натискання цієї кнопки призведе до відкриття діалогового вікна Виберіть шрифт, за допомогою якого ви зможете вказати шрифт, який буде використано у вікні протоколів (це вікно, у якому буде показано дані виведені клієнтом cvs).

Шрифт для переглядача анотацій...

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

Шрифт для переглядача відмінностей...

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

Кольори

  Натисніть кольорові кнопки, щоб відкрити діалогове вікно Виберіть колір, за допомогою якого можна визначити колір, який використовуватиметься для пунктів Конфлікт, Локальна зміна і Віддалена зміна у основній області перегляду або Зміна порівняння, Вставка порівняння і Вилучення порівняння у вбудованій оболонці Cervisia.

Розбити головне вікно горизонтально

  Типово, головне вікно програми Cervisia поділено вертикаль на вікно з переглядом дерева файлів, розташоване згори, і вікно з виводом CVS, розташоване нижче. Ви також можете розташувати ці області горизонтально.

Розділ 7. Додаток
Додаток

# Розділ 7. Додаток

## Файли, які ігноруються програмою

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

- Статичного списку записів, серед яких файли `*.o` і `core`. Подробиці можна дізнатися з документації з CVS.

- Файла ``$HOME`/.cvsignore`.

- Змінної середовища `$CVSIGNORE`.

- Файла `.cvsignore` у відповідній теці.

Крім того, сама програма cvs шукає записи у теці ``$CVSROOT`/CVSROOT/cvsignore`, але цей файл зберігається на сервері, а Cervisia має запускатися у автономному режимі. Якщо ви працюєте з групою. учасники якої віддають перевагу використанню списку ігнорування на сервері, ймовірно, варто переглянути, які шаблони перелічено у цьому файлі, а потім скопіювати їх до файла `.cvsignore` у вашій домашній теці.

Докладніші відомості і підтримка
Докладніші відомості і підтримка

## Докладніші відомості і підтримка

- CVS постачається з повним набором документації у формі сторінок info, відомим як «The Cederqvist». Якщо програмне забезпечення встановлено належним чином, ви зможете переглянути цю документацію після введення адреси `info:/cvs` у поле адреси Konqueror. Ви також можете просто скористатися пунктом меню Довідка → Посібник з CVS у головному вікні Cervisia. PDF-версію Cederqvist можна знайти у мережі.

  Оскільки ця книга постачається разом з CVS, вона є, зазвичай, найсучаснішим довідником; але вам варто ознайомтеся з іншою документацією для вивчення CVS, зокрема з документацією з наведеного нижче переліку.

- Карл Фогель написав чудову книгу Open Source Development with CVS. Майже половину цієї книги присвячено процесу розробки програмного забезпечення з відкритим вихідним кодом. Інша частина є технічною документацією щодо CVS. На щастя, технічну частину книги можна вільно поширювати за умов дотримання GPL, отже, ви можете отримати HTML-версією цієї частини. Список помилок можна знайти на вебсторінці, про яку ми згадували вище.

- Недоліки у CVS обговорюються у відповідному списку листування.

- Існує група USENET `comp.software.config-mgmt`, яку присвячено загальному керуванню налаштуваннями. CVS є лише побіжною темою у цій групі, але вам може бути цікаво прочитати обговорення, що стосуються переваг різних систем керування версіями у порівнянні з CVS.

Довідка щодо команд
Довідка щодо команд

## Довідка щодо команд

### Меню «Файл»

Файл → Відкрити пісочницю... (Ctrl+O)

  Відкриває пісочницю у головному вікні. Див. «Головне вікно, перегляду стану файлів і оновлення».

Файл → Останні пісочниці

  Відкриває нещодавно використовувані пісочниці.

Файл → Вставити запис із файла змін...

  Відкриває редактор файла ChangeLog, підготованого таким чином, що ви можете додати новий запис для поточної дати. Див. «Надсилання файлів».

Файл → Оновити (Ctrl+U)

  Виконує для вибраних файлів команду «cvs update» і відповідним чином змінює стан і номери версій у списку. Див. «Головне вікно, перегляду стану файлів і оновлення».

Файл → Стан (F5)

  Виконує для вибраних файлів команду «cvs -n update» і відповідним чином змінює стан і номери версій у списку. Див. «Головне вікно, перегляду стану файлів і оновлення».

Файл → Зміни

  Відкриває вибраний файл у типовому редакторі KDE для вибраного типу файлів.

Файл → Вирішити...

  Відкриває для вибраного файла діалогове вікно, за допомогою якого ви зможете вирішити конфлікти об’єднання для цього файла. Див. «Розв’язання конфліктів».

Файл → Передати... (#)

  Надає вам змогу передати до сховища вибрані файли. Див. «Надсилання файлів».

Файл → Додати до сховища... (Ins)

  Надає вам змогу додати вибрані файли до сховища. Див. «Додавання файлів».

Файл → Додати двійковий...

  Надає вам змогу додати вибрані файли до сховища як бінарні файли (cvs add`-kb`). Див. «Додавання файлів».

Файл → Вилучити зі сховища... (Del)

  Надає вам змогу вилучити вибрані файли зі сховища. Див. «Вилучення файлів».

Файл → Повернути

  Відкидає всі локальні зміни, які ви внесли до вибраних файлів, і повертає вміст цих файлів до того стану, у якому він зберігається у сховищі (використання цього пункту відповідає параметру `-C` команди cvs update).

Файл → Вийти (Ctrl+Q)

  Завершує роботу Cervisia.

### Меню «Перегляд»

Перегляд → Стоп (Escape)

  Припинити роботу всіх запущений підпроцесів.

Перегляд → Переглянути журнал... (Ctrl+L)

  Показує вікно перегляду журналу версій вибраного файла. Див. «Перегляд журналів CVS».

Перегляд → Примітка... (Ctrl+A)

  Показує перегляд вибраного файла з коментарями, тобто перегляд, за допомогою якого ви зможете побачити кожен з рядків, змінених автором востаннє. Див. «Перегляд приміток до файла».

Перегляд → Відмінність від сховища (BASE)... (Ctrl+D)

  Показує відмінності між вибраним файлом у пісочниці і останньою оновленою версією файла (BASE). Див. «Спостереження за різницями між версіями».

Перегляд → Відмінність від сховища (HEAD)... (Ctrl+H)

  Показує відмінності між вибраним файлом у пісочниці і останньою оновленою версією файла (HEAD). Див. «Спостереження за різницями між версіями».

Перегляд → Остання зміна...

  Показує відмінності між останньою оновленою версією вибраного файла (BASE) і попередньою його версією. Див. «Спостереження за різницями між версіями».

Перегляд → Історія...

  Показує історію CVS у тому вигляді, у якому її зберігає сервер. Див. «Перегляд журналу».

Перегляд → Сховати всі файли

  Визначає, чи буде у головному дереві перегляду показано лише теки. Див. «Головне вікно, перегляду стану файлів і оновлення».

Перегляд → Сховати файли без змін

  Визначає, чи буде приховано у головному перегляді дерева невідомі і незмінені файли. Див. «Головне вікно, перегляду стану файлів і оновлення».

Перегляд → Сховати вилучені файли

  Визначає, чи буде приховано у головному перегляді дерева вилучені файли. Див. «Головне вікно, перегляду стану файлів і оновлення».

Перегляд → Сховати файли не з CVS

  Визначає, чи буде приховано у головному перегляду дерева файли, яких немає у CVS. Див. «Головне вікно, перегляду стану файлів і оновлення».

Перегляд → Сховати порожні теки

  Визначає, чи буде приховано теки без видимих записів у головному перегляді дерева. Див. «Головне вікно, перегляду стану файлів і оновлення».

Перегляд → Розгорнути файлове дерево

  Розгортає всі гілки у файловому дереві так, щоб ви могли бачити всі файли і теки. Див. «Головне вікно, перегляду стану файлів і оновлення».

Перегляд → Згорнути файлове дерево

  Згортає всі гілки у дереві файлів. Див. «Головне вікно, перегляду стану файлів і оновлення».

### Меню «Додаткові»

Додаткові → Мітка/Гілка...

  Позначає міткою випуску або версії вибрані файли. Див. «Робота з мітками випусків і гілок».

Додаткові → Вилучити мітку...

  Вилучає мітку вказаної версії з вибраних файлів. Див. «Робота з мітками випусків і гілок».

Додаткові → Оновити до мітки/дати...

  Відновлює вибрані файли до вказаного випуску і дати, роблячи їх незмінними. Див. «Оновлення до випуску, гілки або певної дати».

Додаткові → Оновити до HEAD...

  Відновлює вибрані файли відповідно до версії у HEAD. Див. «Оновлення до випуску, гілки або певної дати».

Додаткові → Об’єднати...

  Об’єднує вказану версію або зміни між двома випусками вибраних файлів. Див. «Робота з мітками випусків і гілок».

Додаткові → Додати спостерігача...

  Додає нагляд для набору подій, що відбуваються з вибраними файлами. Див. «Користування спостерігачами».

Додаткові → Вилучити спостерігача...

  Вилучає нагляд за набором подій, що відбуваються з вибраними файлами. Див. «Користування спостерігачами».

Додаткові → Показати спостерігачів

  Показує список спостерігачів вибраних файлів. Див. розділ «Користування спостерігачами».

Додаткові → Редагувати файли

  Виконує команду cvs edit для вибраних файлів. Див. розділ «Користування спостерігачами».

Додаткові → Завершити редагування

  Виконує команду cvs unedit для вибраних файлів. Див. розділ «Користування спостерігачами».

Додаткові → Показати редактори

  Виконує команду cvs editors для вибраних файлів. Див. розділ «Користування спостерігачами».

Додаткові → Заблокувати файли

  Блокує вибрані файли. Див. розділ «Блокування».

Додаткові → Розблокувати файли

  Розблоковує вибрані файли. Див. розділ «Блокування».

Додаткові → Створити латку для сховища...

  Створює латку зі змінами у вашій пісочниці. Див. «Створення латок».

### Меню «Сховище»

Сховище → Створити...

  Відкриває діалогове вікно, за допомогою якого ви можете створити нове локальне сховище. Див. «Доступ до сховища».

Сховище → Отримати...

  Відкриває діалогове вікно, за допомогою якого ви зможете отримати модуль зі сховища. Див. «Отримання модуля зі сховища».

Сховище → Імпорт...

  Відкриває діалогове вікно, за допомогою якого ви можете імпортувати пакунок до сховища. Див. «Імпортування модуля до сховища».

Сховище → Сховища...

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

### Меню «Параметри» і «Довідка»

Окрім типових для KDE пунктів меню «Параметри» і «Довідка», описаних у розділі щодо меню підручника з основ роботи у KDE, у Cervisia передбачено такі додаткові пункти:

Параметри → Створювати теки при оновленні

  Визначає, чи будуть під час оновлень створюватися теки у пісочниці, якщо їх там раніше не було (позначення цього пункту відповідає параметру `-d` команди cvs update).

Параметри → Вилучати порожні теки при оновленні

  Визначає, чи будуть вилучатися порожні теки у пісочниці під час оновлень (позначення цього пункту відповідає параметру `-P` команди cvs update).

Параметри → Рекурсивне оновлення

  Визначає, чи будуть оновлення рекурсивними (позначення пункту відповідає параметру `-r` команди cvs update).

Параметри → Передавати та вилучати рекурсивно

  Визначає, чи будуть внески і вилучення рекурсивними (позначення пункту відповідає параметру `-r` команд cvs add і cvs remove, відповідно).

Параметри → Виконувати cvs edit автоматично, коли потрібно

  Визначає, чи буде автоматично виконано cvs edit за умови зміни вами певного файла.

Довідка → Посібник CVS

  Відкриває сторінки info CVS за допомогою довідкової системи KDE.

Розділ 8. Подяки і ліцензування
Подяки і ліцензування

# Розділ 8. Подяки і ліцензування

Авторські права на програму

- 1999-2002 Bernd Gehrmann `(bernd AT mail.berlios.de)`

- 2002-2008 Автори Cervisia

Авторські права на документацію до програми належать Bernd Gehrmann `(bernd AT mail.berlios.de)`, ©1999-2002 і Carlos Woelz carloswoelz@imap-mail.com, ©2004

Переклад українською: Юрій Чорноіван `(yurchor AT ukr.net)`

Цей документ поширюється за умов дотримання GNU Free Documentation License.

Ця програма поширюється за умов дотримання GNU General Public License.