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

Спостерігач — це загальноприйнята назва для функціональної можливості 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, перш ніж запускати редактор. Після цього ви зможете редагувати файл у звичайному режимі. Після завершення редагування ви зможете надіслати змінені файли, — у сховищі вони знову стануть придатними лише для читання.