Підручник з kdesvn

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

Rajko Albrecht `<ral@alwins-world.de>`

Переклад українською: Юрій Чорноіван
версія kdesvn 2.0 (22 травня 2016 року)

Авторське право © 2005, 2008 Rajko Albrecht

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

kdesvn — клієнт subversion від KDE.

Список таблиць

2.1. Властивості інтеграції із системою стеження за вадами
3.1. Огляд команд `KIO::ksvn::special`
3.2. Вміст метаданих
4.1. Команди Subversion
4.2. Параметри команд subversion
5.1. Subversion
5.2. Завдання за розкладом

Список прикладів

3.1. Отримання різниці між модифікаціями за допомогою KDiff3 і KIO::ksvn
4.1. Показати останні 20 повідомлень про внески у журналі
4.2. Вивести відмінність від даних у сховищі, тобто локальні зміни
4.3. Вивести різницю між модифікаціями
4.4. Порівняння двох мічених версій

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

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

kdesvn — клієнт subversion від KDE.

Вам знадобляться певні знання щодо subversion, але, сподіваємося, значення більшості термінів є очевидним.

Надсилати звіти щодо вад і побажання щодо реалізації нових можливостей можна за допомогою системи стеження за вадами KDE.

## Терміни

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

Сховище

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

Робоча копія

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

  Слід пам’ятати, що subversion нічого не знає про KIO, отже робоча копія має зберігатися там, де доступ до неї можна здійснювати без будь-яких специфічних протоколів, наприклад «fish://».

WebDav

  WebDav — протокол, за допомогою якого ви можете вносити зміни до файлів, що зберігаються не віддаленому сервері. Subversion — особливий тип WebDAV, коли доступ до сховищ здійснюється за допомогою вебсервера. За типових налаштувань дані на сервері можна лише читати. За допомогою спеціальних налаштувань можна створити сервер WebDAV з можливістю читання та запису, доступ до якого здійснюється через спеціалізовану програму для навігації. kdesvn не є клієнтом WebDAV, клієнтською програмою є Konqueror, що працює з протоколом «webdav://». Втім, за допомогою kdesvn ви можете переглядати дерево модифікацій сховища (за використання протоколу «http://»).

Розділ 2. Користування kdesvn
Користування kdesvn

# Розділ 2. Користування kdesvn

## Можливості kdesvn

У kdesvn передбачено підтримку таких протоколів навігації сховищами:

http

  Стандартний протокол роботи програм для перегляду інтернету.

https

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

(k)svn+http

  Стандартний протокол роботи програм для перегляду інтернету. Може бути використаний для автоматичного виклику kdesvn з Konqueror.

(k)svn+https

  Стандартний шифрований протокол роботи програм для перегляду інтернету. Може бути використаний для автоматичного виклику kdesvn з Konqueror.

(k)svn+file

  Протокол роботи з локальним сховищем. Може бути використаний для автоматичного виклику kdesvn з Konqueror.

(k)svn

  Власний протокол сервера Subversion.

(k)svn+ssh

  Subversion з ssh.

file

  Безпосередній доступ до сховища. kdesvn перевіряє, чи є вказаний каталог каталогом сховища або робочої копії і відкриває його у належному режимі. Для subversion `file:///каталог` і `/каталог` є двома різними каталогами!

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

Перші кроки у роботі з subversion та kdesvn
Перші кроки у роботі з subversion та kdesvn

## Перші кроки у роботі з subversion та kdesvn

Цей розділ призначено в основному для початківців, які ще не знайомі з subversion. У ньому ви знайдете пояснення щодо принципів роботи subversion і/або систем керування версіями.

### Створення робочої копії

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

Доступ до робочих копій має здійснюватися за допомогою локальних шляхів. Subversion нічого не відомо про фіктивні файлові системи, наприклад `smb://` або `fish://`. kdesvn, якщо це можливо, розгортає адреси до прийнятних (наприклад для `system:/home`), але таке розгортання неможливе для мережевих адрес.

Для початку вам слід створити робочу копію вашого сховища. Для цього скористайтеся пунктом меню Subversion → Загальне → Отримати зі сховища. У показаному діалоговому вікні вам слід вказати адресу сховища, яким ви хочете скористатися, наприклад `http://localhost/repos/myproject`. Також можна вказувати підтеки сховища, наприклад `http://localhost/repos/myproject/trunk` або щось подібне.

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

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

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

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

### Надсилання локальних змін

Позначте пункти запису або записів, які ви хочете надіслати, і скористайтеся пунктом меню Subversion → Робоча копія → Надіслати (Ctrl+#).

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

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

Введіть повідомлення журналу щодо вашого внеску і натисніть кнопку Гаразд. Програма надішле зміни до сховища.

### Оновлення робочої копії

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

Щоб отримати зміни, виберіть у меню пункт Subversion → Робоча копія → Оновити до HEAD. У відповідь буде виконано оновлення до найсвіжішої версії зі сховища. Якщо вам потрібно оновити дані до певної модифікації, скористайтеся пунктом меню Subversion → Робоча копія → Оновити до модифікації і вкажіть номер модифікації, до якої слід оновити дані, за допомогою відкритого програмою діалогового вікна.

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

### Додавання і вилучення елементів з робочої копії

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

#### Додавання елементів

Додати елемент до робочої копії можна у три способи:

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

  Скопіювати файли з вікна Dolphin або будь-якої іншої програми для керування файлами на панель робочої копії. Пройдіться списком, позначте нові елементи і скористайтеся пунктом меню Subversion → Робоча копія → Додати позначені файли або каталоги (Insert). Якщо ви хочете додати нові теки разом з їхнім вмістом, скористайтеся пунктом меню Subversion → Робоча копія → Додати позначені файли або каталоги рекурсивно (Ctrl+Insert).

Перевірити і додати рекурсивно

  Ви можете наказати програмі перевірити, чи немає у робочій копії елементів, які не перебувають під керуванням версіями. Після вибору пункту меню Subversion → Робоча копія → Знайти елементи поза системою керування версіями програма відкриє діалогове вікно, у якому ви побачите список елементів, які не перебувають у межах системи керування версіями. Натискання кнопки Гаразд призведе до додавання позначених елементів до робочої копії. Перед натисканням цієї кнопки ви можете зняти позначки з елементів, які не слід додавати.

Перетягування і скидання

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

#### Вилучення елементів з робочої копії і скасування керування версіями

Вилучення елементів завжди є рекурсивним. Наприклад, якщо ви вилучите теку, увесь її вміст також буде вилучено. Позначте пункти елементів, які слід вилучити і скористайтеся пунктом меню Subversion → Загальне → Вилучити позначені файли або каталоги. Елементи буде вилучено з системи керування версіями і диска вашого комп’ютера.

### Показ журналів

Вікно перегляду журналу можна відкрити за допомогою натискання комбінації клавіш Ctrl+L, якщо на панелі перегляду позначено один або не позначено жодного елемента. Залежно від налаштувань програми (див. Таблиця 5.1, «Subversion»), kdesvn отримає певну порцію записів журналу, починаючи з «HEAD», і покаже вам ці записи.

#### Діалогове вікно показу журналу

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

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

### Важливо

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

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

Кнопка Анотувати, звичайно ж, працюватиме, лише якщо елементом, журнал якого ви переглядаєте, є файл.

Для всіх записів у обох списках передбачено контекстне меню з додатковими пунктами дій. Для лівого списку цими пунктами є Встановити версію у лівій частині вікна різниці (тобто початкову модифікацію) і Встановити версію у правій частині вікна різниці (тобто кінцеву модифікацію або модифікацію призначення для різниці, позначену у ній символами `+++`). Після позначення модифікацій до відповідних пунктів у списках буде додано невеличкі стрілочки.

Робота зі сховищами
Робота зі сховищами

## Робота зі сховищами

Просту навігацію сховищем можна здійснювати за допомогою Konqueror, Dolphin або подібної програми для керування файлами. Відкрийте адресу за протоколом, описаним у розділі «Можливості kdesvn» (одним з протоколів, назви яких починаються з літери «k») і програма має показати вміст сховища. У сховищі можна виконувати прості дії, наприклад копіювання, пересування елементів та вилучення. Якщо ви додасте до адреси сховища запит у форматі «?rev=`xxx`», програма має показати вказану вами модифікацію. Формат запиту щодо модифікації описано у розділі Додаток A, Синтаксис для модифікацій. Додаткові відомості щодо KIO::ksvn викладено у розділі Розділ 3, Konqueror, KIO, kdesvn

Усі завдання, окрім Копіювати, можна виконувати, лише якщо переглядається модифікація HEAD.

### Відновлення вилучених елементів

У subversion відновлення вилучених елементів — це дія з копіювання елемента з певної модифікації. Отже, вам слід відновити вигляд сховища до модифікації перед тим, як елемент було вилучено. Виберіть пункт меню Subversion → Сховище → Вибрати модифікацію для навігації і вкажіть потрібну вам модифікацію. kdesvn покаже вміст сховища для цієї модифікації. Позначте запис, який слід відновити і виберіть пункт меню Subversion → Загальне → Копіювати (Ctrl+C). У діалоговому вікні, яке буде показано, призначенням завжди є модифікація HEAD, а джерелом — вибрана вами для навігації модифікація. Натисніть кнопку Гаразд, щоб розпочати копіювання. Після завершення копіювання поверніться до перегляду модифікації HEAD, у якій має з’явитися відновлений елемент.

### Імпортування тек

Через обмеження у subversion можна імпортувати лише теки, а не окремі файли.

#### За допомогою перетягування зі скиданням

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

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

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

Інші дії
Інші дії

## Інші дії

### Об’єднання

Відкрийте сховище або робочу копію, позначте елемент, який слід об’єднати і скористайтеся пунктом меню Subversion → Загальне → Об’єднати. Вкажіть у діалоговому вікні, яке буде показано потрібні вам параметри. Якщо було відкрито сховище, заповніть поля джерела 1 і джерела 2. Якщо було відкрито робочу копію, результатом об’єднання буде визначено поточний позначений елемент. Обробка параметра результатів трохи відрізняється для випадків використання вбудованого інструмента побудови відмінностей subversion та використання зовнішньої програми, наприклад KDiff3. Результатом завжди має бути локальна тека або файл. Перемикатися між зовнішньою і вбудованою програмою для об’єднання можна за допомогою пункту Використовувати зовнішнє об’єднання.

#### Вбудований інструмент об’єднання

Значення параметрів є тим самим, що і у вбудованому інструменті об’єднання subversion. Якщо джерело1 і джерело2 мають однакові назви, різними мають бути початкова та кінцева модифікації. Якщо джерела є різними, початковою модифікацією буде джерело1, а кінцевою — джерело2. Результатом має бути робоча копія, інакше subversion надішле повідомлення про помилку.

Пункти з позначками мають таке призначення:

Рекурсивно

  Під час обробки тек виконувати всі дії рекурсивно.

Обробляти непов’язані елементи як пов’язані

  Якщо позначено, різниці для непов’язаних елементів знаходитимуться так, наче елементи пов’язано. Якщо пункт не буде позначено, subversion показуватиме одну частину вилученою на одному боці, а потім додаватиме її на іншому боці.

Примусово вилучати для змінених елементів або елементів поза керуванням версіями

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

Тестовий запуск без внесення змін

  Якщо позначено, subversion лише сповіщає про свої дії і не вносить зміни до робочої копії.

#### Використання зовнішньої програми для об’єднання

Див. «Різниці і об’єднання», щоб дізнатися більше про налаштовування зовнішньої програми для об’єднання. kdesvn створить командний рядок для програми відповідно до вказаних за посиланням принципів. До цього буде виконано такі дії:

1. Призначено початковою модифікацією модифікацію джерела 1, а кінцевою — джерела 2. Програма порівнює джерела (за адресами і/або модифікаціями). Якщо буде виявлено відмінності, програма відкриє вікно потрійного об’єднання, інакше буде виконано просте об’єднання джерела з призначенням. Те саме просте об’єднання буде виконано, якщо не буде вказано джерела 2.

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

3. Викликано зовнішню програму для об’єднання, яку було вказано у вікні налаштовування. Виведені програмою дані щодо помилок буде показано у вікні журналу, отже, ви зможете стежити за помилками (якщо вони все ж стануться).

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

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

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

У самій програмі kdesvn немає модуля для розв’язування конфліктів, але ви можете скористатися зовнішньою програмою, якою керуватиме kdesvn. У розділі «Програма для розв’язування конфліктів» можна знайти опис налаштовування такої програми.

Після позначення елемента зі станом «конфліктний» (у списку такі елементи буде позначено червоним хрестиком) ви можете скористатися пунктом меню Subversion → Робоча копія → Розв’язати конфлікт або пунктом контекстного меню Розв’язати конфліктt (лише для конфліктних елементів). Після вибору одного з цих пунктів kdesvn запустить налаштовану вами або типову програму для розв’язування конфліктів. Після завершення розв’язання конфлікту вам слід зняти позначення елемента як конфліктного (Subversion → Робоча копія → Позначити як розв’язане), інакше ви не зможете надіслати ваші зміни до сховища.

Властивості, що використовуються kdesvn для налаштовування
Властивості, що використовуються kdesvn для налаштовування

## Властивості, що використовуються kdesvn для налаштовування

### Інтеграція із системою стеження за вадами

У межах проєкту TortoiseSVN project розроблено чудову систему властивостей для інтегрування системи керування версіями з системою стеження за вадами. У поточній версії kdesvn не передбачено додаткових полів у вікні внеску (їх буде реалізовано пізніше) і обробки усіх цих властивостей:

Таблиця 2.1. Властивості інтеграції із системою стеження за вадами

Властивість | Опис | Приклад
--- | --- | ---
`bugtraq:url` | Містить адресу системи стеження за вадами. Має містити позначку `%BUGID%`. | https://bugs.kde.org/show_bug.cgi?id=%BUGID%

`bugtraq:logregex`

Містить один або два формальні вирази, відокремлені символом нового рядка.

Якщо визначено один формальний вираз, за допомогою групи формальних виразів з повідомлення про внесок має бути визначено сам номер ідентифікатор вади. Якщо ж встановлено два формальні вирази, перший використовуватиметься для пошуку рядка, пов’язаного з ідентифікатором вади (цей рядок може містити не лише ідентифікатор вади, наприклад «Issue #123» або «resolves issue 123»). Другий вираз буде використано для обробки першого: отримання самого ідентифікатора вади з першого виразу.

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

Один вираз (можна використовувати для TRAC):

    #(\d+)

Тепер усі номери, наприклад `#190`, буде оброблено і перетворено на адреси у повідомленнях журналу.

Два вирази:

    [Ii]ssue #?(\d+)(,? ?#(\d+))*
    (\d+)

### Пам’ятайте

Зверніть увагу на пробіли після `(\d+)`! Це одна з найпоширеніших помилок, через які формальні вирази працюють не так, як потрібно!

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

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

Дерево модифікацій
Дерево модифікацій

## Дерево модифікацій

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

### Вимоги

Дерево модифікацій створюється за допомогою програми dot. Отже, для перегляду дерева модифікацій слід встановити пакунок graphviz.

Вбудований кеш журналу
Вбудований кеш журналу

## Вбудований кеш журналу

Для виконання деяких дій kdesvn може використовувати внутрішній кеш журналу. Здебільшого, він використовується для побудови дерева модифікацій і для перегляду спрощеного журналу у автономному режимі. Кеші зберігаються у форматі баз даних SQLite у каталозі `$HOME/.sqvnqt/logcache`. Кожен з файлів у цьому каталозі є кешем для окремого сховища subversion.

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

Бази даних можуть стати дуже великими! Ви можете вимкнути автоматичне оновлення кешу журналу у параметрах програми.

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

### Автономний режим

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

### Кеш журналу і дерево модифікацій

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

Призначення піктограм-накладок
Призначення піктограм-накладок

## Призначення піктограм-накладок

Якщо записи перебувають не у «звичайному» стані, їх може бути позначено піктограмами-накладками.

  Цей запис заблоковано. У останньому стовпчику буде показано дані щодо власника блокування. Ви можете налаштувати kdesvn так, щоб програма також перевіряла заблоковані елементи у сховищі. Втім, будьте обережні: на повільних серверах така перевірка може бути дуже довгою!

  Цей запис слід заблокувати перед редагуванням і надсиланням. Доки ви не встановите блокування, subversion залишатиме запис придатним лише для читання.

  Цей запис або, якщо це тека, запис у ній має новішу версію у сховищі.

  Цей запис або, якщо це тека, запис у ній було змінено локально (у робочій копії).

  Цей запис було локально додано до subversion, але ще не надіслано до сховища.

  Цей запис було локально вилучено з subversion, але зміни ще не було надіслано до сховища.

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

kdesvn і паролі
kdesvn і паролі

## kdesvn і паролі

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

### Не зберігати паролі

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

### Зберігання паролів у KWallet

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

### Зберігання у власному сховищі даних subversion

Ми не рекомендуємо користуватися цим способом, оскільки за його використання паролі зберігаються у незашифрованому текстовому файлі! Не вірите? Зазирніть до файлів у `~/.subversion/auth/svn.simple`. Цим способом слід користуватися, лише якщо ви часто користуєтеся іншими програмами для роботи з subversion, зокрема rapidsvn, esvn або клієнтом командного рядка svn. Якщо ви користуєтеся останнім клієнтом командного рядка здебільшого для отримання початкових копій сховища або оновлень, які не потребують паролів, а для надсилання змін, пересування і копіювання користуєтеся kdesvn, вам слід скористатися сховищем паролів KWallet.

### Вбудований кеш паролів

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

### Особливий випадок svn+ssh

Якщо ви користуєтеся subversion за допомогою протоколу svn+ssh, зберігання паролів можна організувати засобами ssh та ssh-agent. Для цього вам слід мати ssh-доступ до сервера і сховища. Для розпізнавання вам слід користуватися відкритим ключем ssh, а не паролем.. (Фактично, у ssh надається перевага розпізнаванню за відкритим ключем.) Для цього вам слід зберегти ваш відкритий ключ SSH на сервері призначення, тобто у системі сховища. Паролі SSH ніколи не зберігатимуться у сховищі паролів subversion, KWallet або вбудованому кеші паролів.

Якщо ви не хочете, щоб програма кожен раз просила вас ввести ваш пароль до ключа ssh, ви можете скористатися програмою ssh-agent. Для цього виберіть пункт меню Subversion → Додати профілі ssh до ssh-agent. Після цього ви зможете зберегти ваш пароль до ключа SSH на час поточного сеансу, отже, вам не доведеться повторно вводити цей пароль.

Розділ 3. Konqueror, KIO, kdesvn
Konqueror, KIO, kdesvn

# Розділ 3. Konqueror, KIO, kdesvn

## Опис

Починаючи з версії 0.7.0, у kdesvn передбачено модуля для інтеграції виконання певних команд до меню Konqueror.

Протоколи KIO

  У програмі реалізовано обробники для таких протоколів:

  - ksvn+http

  - ksvn+https

  - ksvn+file

  - ksvn+ssh

  - ksvn

  Ці протоколи призначено лише для роботи зі сховищами, а не з робочими копіями. Наприклад, `ksvn+file:///`шлях`` має вказувати на початок сховище, на відміну від самої програми або KPart. Навігацію робочими копіями можна здійснювати за допомогою Konqueror.

  Для перегляду певної модифікації вам варто додати до адреси запит у форматі «?rev=`модифікація`».

Контекстні меню

  kdesvn додає певні пункти до контекстних меню Konqueror. Щоб побачити ці пункти, клацніть правою кнопкою миші у вікні програми для перегляду файлової системи (лише на стандартній панелі, а не панелі KPart). За допомогою цих пунктів можна виконувати більшість дій безпосередньо з Konqueror (або будь-яких інших програм для керування файлами, які можуть читати контекстні меню Konqueror, наприклад Dolphin). Обробка пунктів меню здійснюється за допомогою викликів до варіанта kdesvn для роботи у командному рядку.

### Користування KIO поза межами Konqueror — приклад

Ці протоколи може використовувати будь-яка заснована на бібліотеках KIO програма. Отже, ви зможете отримувати всі відмінності між двома версіями за допомогою KDiff3 без будь-яких додаткових глибоких знань.

Приклад 3.1. Отримання різниці між модифікаціями за допомогою KDiff3 і KIO::ksvn

    kdiff3 \
      ksvn://anonsvn.kde.org/home/kde/trunk/KDE/arts?rev=423127 \
      ksvn://anonsvn.kde.org/home/kde/trunk/KDE/arts?rev=455064

Дозволити KDiff3 вивести усі відмінності між двома модифікаціями.

### Примітка

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

Інформація щодо KIO::ksvn для програмістів
Інформація щодо KIO::ksvn для програмістів

## Інформація щодо KIO::ksvn для програмістів

### Примітка

Ви можете не читати цей розділ, якщо не цікавитеся програмуванням KIO.

KIO::ksvn::special відомі вказані нижче дії.

### Список команд

Таблиця 3.1. Огляд команд `KIO::ksvn::special`

Назва команди | Числовий ідентифікатор | Список параметрів | Чи реалізовано у поточній версії?
--- | --- | --- | ---
Checkout | 1 | KURL repository, KURL target, int revnumber, QString revkind Наприклад, зміни до призначення не буде внесено, але буде отримано його вміст без створення підтек! Наприклад, джерелом може бути `http://server/repos/project/trunk`, а призначенням — `/home/user/proj/`. Тоді вміст trunk буде скопійовано до `/home/user/proj/`, а не до `/home/user/proj/trunk/`! | Так
Update | 2 | KURL url, int revnum, QString revstring Якщо revnum < 0 буде оброблено revstring. Формат запису revstring описано у Додатку. | Так
Commit | 3 | KURL::List urls urls — список локальних адрес для надсилання. Буде надіслано запит щодо повідомлення про внесок. | Так
Log | 4 | int startrevnumber, QString startrevstring, int endrevnumber, QString endrevstring, KURL::List Будьте обережні з використанням: об’єм даних може бути дуже великим. | Так
Import | 5 | KURL targetrepository, KURL sourcepath | Так
Add | 6 | KURL | Так
Del | 7 | KURL::List | Так
Revert | 8 | KURL::List Відновлення попереднього стану у KIO завжди є нерекурсивним і виконується без додаткового підтвердження (програма, яка викликає цю дію, має потурбуватися про підтвердження окремо). | Так
Status | 9 | KURL item, bool checkRepos, bool recurse item — елемент, щодо якого слід отримати інформацію. checkRepos — чи слід перевіряти наявність новіших версій у сховищі, recurse — чи слід виконувати перевірку рекурсивно. | Так
Mkdir | 10 | KURL::List | Так
Resolve | 11 | KURL, bool recursive | Так
Switch | 12 | KURL working_copy_path, KURL new_repository_url, bool recursive,int revnumber, QString revkind | Так
Diff | 13 | URL uri1, KURL uri2, int r1, QString rstring1, int r2, QString rstring 2, bool recursive Для отримання відмінностей між сховищем у file:/// і робочою копією вказуйте адреси робочої копії без зазначення протоколу доступу! | Так

### Повернуті значення

Значення може бути повернуто у форматі метаданих. Докладніший опис можна знайти у документації з програмного інтерфейсу (API).

Таблиця 3.2. Вміст метаданих

Ключ | Можливе значення
--- | ---
path | Шлях для якого було виконано дію, наприклад вказана адреса
action | Числовий тип дії
kind | тип елемента (здебільшого тека або файл)
mime_t | Тип MIME елемента у Subversion
content | Стан вмісту (значення subversion)
prop | Стан властивостей (значення subversion)
rev | Модифікація результату або модифікація, над якою ведеться робота
string | Визначене внутрішньо придатне до читання повідомлення.
loggedaction | Визначений у Subversion рядок дії над елементом (A,M,D)
loggedcopyfrompath | Якщо скопійовано, звідки? (може бути порожнім)
loggedcopyfromrevision | Якщо скопійовано, у якій модифікації? (може бути < 0)
loggedpath | Містить окремий шлях для записів дій у журналі тощо (шлях визначається за адресою виклику).
diffresult | рядок виведення різниці

Розділ 4. Користування kdesvn за допомогою командного рядка
Користування kdesvn за допомогою командного рядка

# Розділ 4. Користування kdesvn за допомогою командного рядка

## Огляд

Деякими з дій subversion можна керувати з командного рядка, тобто подібно до звичайного клієнта командного рядка, але зі взаємодією з користувачем за допомогою графічного інтерфейсу. Стандартним синтаксисом для такого керування є `kdesvn exec `команда` `параметр` `адреса``.

Якщо потрібна окрема модифікація для окремої адреси, її можна вказати як параметр адреси:

    svn://ваш-сервер/шлях-до-сховища/елемент?rev=<ваша-модифікація>

Таке визначення має вищий пріоритет за параметр `-r <модифікація>`.

Модифікацію можна вказати як номера або одне зі значень: `HEAD`, `BASE` або дата у форматі {РРРР-ММ-ДД}.

Список команд
Список команд

## Список команд

У подальшому, всюди не можливим параметром є `-r `модифікація`` модифікацію також можна визначити як ``адреса`?rev=`модифікація``.

Таблиця 4.1. Команди Subversion

Команда | Значення | Можливі параметри
--- | --- | ---
commit (або ci) | Надіслати зміни у елементі до сховища. |
log | Вивести журнал для елемента. | -r початкова_модифікація:кінцева_модифікація -l обмеження_показу
cat | Показати вміст елемента. | -r модифікація
copy (або cp) | Копіювати елемент у робочій копії або сховищі. Якщо призначення не вказано, kdesvn надішле запит щодо призначення. |
move (або mv, rename) | Пересунути або перейменувати елемент у робочій копії або сховищі. Якщо призначення не вказано, kdesvn надішле запит щодо призначення. |
get | Отримати вміст елемента і зберегти його. | -r модифікація -o <файл_результатів> (файл результатів є обов’язковим!)
blame (або annotate) | Анотувати файл | -r початкова_модифікація:кінцева_модифікація
update | Оновити елемент з робочої копії. | -r модифікація
diff | Порівняти дві модифікації елемента або два елементи у певній модифікації. | -r початкова_модифікація:кінцева_модифікація
info | Докладна інформація щодо елемента | -r модифікація
checkout (або co) | Отримати дані за вказаним шляхом сховища до вказаного шляху робочої копії. Програма запитуватиме про шлях призначення та модифікацію джерела. |
checkoutto (або coto) | Отримати дані за вказаним шляхом сховища до вказаного шляху робочої копії. Програма запитуватиме про відмінність шляхів та модифікацій джерела. |
export | Експортувати шлях у сховищі або робочій копії до каталогу. Програма запитає вас про шлях і номер модифікації джерела. |
exportto | Експортувати шлях у сховищі або робочій копії до каталогу. Програма запитає вас щодо шляху джерела і потрібного номера модифікації. |
delete (del, remove, rm) | Вилучити адреси зі сховища або робочої копії. |
add | додати адресу до робочої копії. Адреса має належати робочій копії (це не імпортування!). |
revert (або undo) | Скасувати поточні зміни у робочій копії. Можна використовувати лише для адресу у робочій копії! |
checknew (або addnew) | перевірити наявність за вказаною адресою нових елементів, що не перебувають під керуванням версіями, і додати їх до робочої копії, якщо це потрібно. |
tree | Показати дерево модифікацій елемента (лише для першого з аргументів). Якщо адресу вказано з «?rev=`xxx`», вказана модифікація буде на дереві ключовою. | -r початкова_модифікація:кінцева_модифікація
lock | Заблокувати адреси. Якщо вказано параметр `-f`, наявні блокування буде замінено. | -f
unlock | Розблокувати адреси. Якщо вказано `-f`, блокування, встановлене іншими користувачами буде скасовано, а неіснування блокувань проігноровано. | -f
help | Показати цю сторінку довідки. |

Таблиця 4.2. Параметри команд subversion

Параметр | Можливі значення | Область використання
--- | --- | ---
`-r` | `модифікація` або `початкова_модифікація:кінцева_модифікація` | всюди, окрім commit
`-R` | (нічого) | всюди, окрім commit
`-o` | `назва файла` | get
`-l` | `номер` | log
`-f` | (нічого) | Заблокувати/Розблокувати

### Команда «log»

Команда «log» відкриває діалогове вікно з журналом для вказаної адреси. Починаючи з версії subversion 1.2, можна визначати обмеження, тобто кількість записів журналу, які буде показано.

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

Приклад 4.1. Показати останні 20 повідомлень про внески у журналі

    kdesvn exec log -l 20 -r HEAD:1 myfile.c

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

### Команда «diff»

За допомогою цієї команди можна отримати відмінності між модифікаціями одного елемента бо між двома елементами у одній робочій копії або у одному сховищі. Для порівняння модифікацій елемента можна визначати модифікації у форматі `-r `Початкова_модифікація`:`Кінцева_модифікація``. Якщо вказано елемент у робочій копії без зазначення модифікацій, буде виведено різницю з елементом у сховищі.

Приклад 4.2. Вивести відмінність від даних у сховищі, тобто локальні зміни

    kdesvn exec diff myfile.c

Приклад 4.3. Вивести різницю між модифікаціями

    kdesvn exec diff -r 21:20 myfile.c

Під час порівняння двох елементів номери модифікацій можна додавати до адрес елементів. Приклад:

    http://сервер/шлях/елемент?rev=HEAD

Приклад 4.4. Порівняння двох мічених версій

    kdesvn exec diff http://www.alwins-world.de/repos/kdesvn/tags/rel_0_6_2 http://www.alwins-world.de/repos/kdesvn/tags/rel_0_6_3

Розділ 5. Параметри
Параметри

# Розділ 5. Параметри

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

## Загальне

Розмір піктограм у списку | Визначає розмір піктограм у основному списку.
Показувати дані щодо файла | Визначає, чи слід показувати невеличку панель підказки, коли ви наводите вказівник миші на пункт у списку.
Позначати стан елемента накладною піктограмою | Якщо елемент перебуває не у звичайному для subversion стані, його може бути позначено піктограмою-накладкою. Див. «Призначення піктограм-накладок».
При впорядковуванні зважати на регістр літер | Визначає, чи враховуватиметься регістр під час впорядковування елементів у головному вікні програми, тобто чи вважатиметься літера «a» рівною «A».
Показувати ігноровані файли | Визначає, чи слід показувати елементи, які ігноруються у subversion.
Максимальна кількість повідомлень у журналі | Визначає кількість повідомлень журналу kdesvn, які має пам’ятати програма.
Показувати кольорові анотації | Використовувати для анотації кольори, визначені за допомогою діалогового вікна параметрів програми.
Використовувати панель навігації | Увімкнути або вимкнути показ панелі ієрархії сховища.

Subversion і параметри завдань за розкладом
Subversion і параметри завдань за розкладом

## Subversion і параметри завдань за розкладом

Таблиця 5.1. Subversion

Розпочинати пошук оновлень після відкриття робочої копії | Після відкриття робочої копії починати пошук оновлень у фоновому режимі.
Заповнювати кеш журналу під час відкриття | Якщо буде позначено, kdesvn розпочинатиме заповнення (або повторне заповнення) кешу журналу під час відкриття сховища або робочої копії, якщо адреса сховища не є локальною (`file://`).
Перевіряти, чи встановлено властивість «svn:needs-lock» | Шукати у робочих копіях елементи зі встановленою відповідною властивістю і, якщо такі елементи буде знайдено, показати їх зі спеціальною піктограмою-накладкою. Позначення цього пункту може значно уповільнити побудову списків елементів.
Отримувати подробиці щодо файлів під час побудови списку | Якщо позначено, kdesvn отримуватиме докладніші відомості щодо файлів під час побудови списків вмісту віддалених сховищ. Отже, ви зможете бачити блокування, здійснені у сховищі. Обережніше: використання цієї можливості ЗНАЧНО уповільнює побудову списків.
Отримувати дані щодо елемента рекурсивно | Якщо позначено, команда info отримуватиме інформацію щодо всіх підлеглих елементів тек, що може значно уповільнити обробку списків.

Зберігати паролі для віддалених з’єднань

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

Зберігати паролі до KWallet

Зберігання паролів у незашифрованому файлі subversion є значною «діркою» у захисті системи. kdesvn може зберігати паролі до зашифрованої торбинки KDE (починаючи з версії 0.12.0) і користуватися збереженими паролями. З іншого боку, інші клієнтські програми subversion не зможуть читати ці паролі, отже вам доведеться вводити їх знову, якщо ви користуєтеся інструментами, подібними до засобу командного рядка svn або rapidsvn. Доки у subversion не буде передбачено шифрування сховища паролів, вам слід ретельно обдумати, чи слід користуватися цим пунктом.

Використовувати вбудований кеш паролів | Якщо пароль не зберігається на постійній основі, kdesvn може зберігати його лише до кінця сеансу роботи з kdesvn, отже вам не доведеться вводити пароль знову для виконання кожної з дій. Такий кеш паролів не є постійним, тобто насправді паролі зберігаються лише у пам’яті комп’ютера.
Журнал змінюється відповідно до змін вузлів | Якщо позначено, журнал міститиме дії з копіювання.
До журналу зажди читається список змінених файлів | Команда «log» може читати список змінених у внеску файлів. Це корисно і, здебільшого, не призводити до значного навантаження на канал зв’язку з сервером.
Переглядати список елементів до надсилання | Під час надсилання внеску kdesvn може виконувати перевірку дії. Наприклад, шукати елементи поза керуванням версіями, які можна було б додати, і показувати їх список у вікні внеску. Тривалість виконання додаткової обробки залежить від розмірів проєкту.
Ховати нові елементи у вікні надсилання | Визначає, чи слід показувати елементи поза керуванням версіями у діалоговому вікні надсилання.
Оновлення змінює без створення конфліктів | Якщо позначено, локальне додавання вузла даних з тим самим шляхом, що і у вхідного додавання вузла, призводитиме до створення звичайного вузла з можливими локальними змінами, а не до конфлікту у дереві.
Оновлення створює батьківські елементи, яких не вистачає | Якщо позначено, створювати усі батьківські каталоги, яких ще немає, шляхом отримання цих каталогів з порожньою глибиною (depth=empty).

Таблиця 5.2. Завдання за розкладом

Шукати змінені елементи кожні N секунд Шукати оновлені елементи кожні N секунд | Якщо позначено і доступною є робота у мережі, програма регулярно шукатиме оновлення і зміни робочої копії

Різниці і об’єднання
Різниці і об’єднання

## Різниці і об’єднання

Під час порівняння ігнорувати бінарні дані

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

Порівняння у дереві модифікацій є рекурсивним

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

Під час порівняння ігнорувати відмінності у пробілах

  Ігнорувати зміни у кількості пробілів (параметр `-b` програми diff)

Під час порівняння ігнорувати усі пробільні символи

  Ігнорувати усі пробільні символи (параметр `-w` команди diff)

Використовувати зовнішню програму для об’єднання

  Позначте, якщо для об’єднання варто надавати перевагу зовнішній програмі, а не засобам Subversion

Use Git diff format

Показувати копіювання як додавання

### Використовувати зовнішню програму для показу різниць

Визначити зовнішню програму для показу різниць. Типовою є Kompare.

### Зовнішня програма для показу різниць

Визначає, у який спосіб kdesvn має показувати різницю у зовнішній програмі і яку програму буде використано. Передбачено три способи:

<програма> <параметр>

  Різницю буде створено за допомогою внутрішніх засобів subversion і виведено безпосередньо до вхідного каналу даних зовнішньої програми (тобто не буде створено жодних тимчасових файлів).

<програма> <параметр> %f

  Різницю буде визначено засобами subversion, збережено до тимчасового файла, а параметр `%f` у команді буде замінено назвою цього тимчасового файла. Цим способом можна скористатися, наприклад, для простого виклику less або програми для перегляду текстових файлів.

<програма> <параметр> %1 %2

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

Використовувати зовнішню програму для об’єднання

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

### Зовнішня програма для об’єднання

Пункт налаштовування програми і параметрів для випадків, коли використання вбудованих інструментів subversion є небажаним. Типовою командою є kdiff3 %s1 %s2 %t. Порядок змінних-замінників не є важливим, їх можна використовувати декілька разів, наприклад так: `kdiff3 -o %t %s1 %s2 %t`. Концепцію використання зовнішньої програми було перевірено лише для meld і KDiff3. Пам’ятайте, що зовнішні програми нічого не знають про параметр ігнорування елементів у subversion, отже можуть показати деякі додаткові дані щодо змін.

#### Заміна змінних у параметрах зовнішньої програми для об’єднання

%s1

  Замінюється на назву першого файла-джерела.

%s2

  Замінюється на назву джерела 2. Якщо вказано порожнє значення або назву, яка збігається з назвою джерела 1, а початкова і кінцева модифікації збігаються, цю змінну буде пропущено. Отже, будьте обережні з визначенням командних рядків, подібних до такого: xxdiff --title1 %s1 --title2 %s2 %s1 %s2 %t.

%t

  Замінюється на назву файла результатів.

### Програма для розв’язування конфліктів

Для розв’язування конфліктів ви можете скористатися зовнішньою програмою, наприклад KDiff3. Типовою командою є kdiff3 %o %m %n -o %t.

#### Замінники для зовнішнього інструмента розв’язування конфліктів

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

%o або %l

  Стара (локальна, ліва) версія. «Стара» означає «версія з меншим номером модифікації», тобто початкова точка для визначення конфліктних змін. (`foo.cc.r2`)

%m або %w

  Ваша (робоча) версія фала, тобто версія з вашими змінами відносно старої версії. (`foo.cc.mine`)

%n або %r

  Нова (віддалена, права) версія файла. Наприклад, версія, до якої було внесено зміни якимось іншим розробником. (`foo.cc.r3`)

%t

  Назва результату, наприклад початкова назва файла. Для KDiff3 (у нашому прикладі) цією назвою буде назва файла після параметра `-o`. (`foo.cc`)

Засіб введення виведення/командного рядка
Засіб введення виведення/командного рядка

## Засіб введення виведення/командного рядка

Показати журнал після виконання команди

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

Мінімальна показана кількість рядків у журналі

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

Не показувати контекстне меню у Konqueror

  Якщо позначено, у Konqueror не буде пункту дій для kdesvn.

Не показувати пунктів у меню дій верхнього рівня

  Якщо позначено, kdesvn не показуватиме додаткові пункти меню у підменю дій Konqueror або Dolphin.

Для дій KIO використовувати стандартне повідомлення журналу

  Під час виконання значних за об’ємом дій зі сховищем за допомогою протоколу KIO kdesvn з вікна Konqueror (тобто протоколів «ksvn+...»), зокрема копіювання або пересування тек, kdesvn проситиме вас вказати повідомлення журналу для кожного з елементів. Це пов’язано зі способом обробки даних у Konqueror. Якщо позначено цей пункт, реалізація KIO у kdesvn не проситиме вказати повідомлення журналу, а використовуватиме стандартне повідомлення журналу. Це не стосується дій, що виконуються за допомогою меню дій kdesvn у Konqueror, а лише дій з копіювання, пересування, створення каталогів та вилучення, виконаних у Konqueror або інших програмах для керування файлами за допомогою KIO-адреси.

Стандартне повідомлення

  Повідомлення, яке KIO kdesvn має використати для дій, виконаних у Konqueror, якщо позначено відповідний пункт згори. Типовим повідомленням є Revision made with kdesvn KIO.

KIO може перезаписувати

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

  Користуйтеся цією можливістю, лише якщо вам відомі наслідки ваших дій.

KIO показує повідомлення щодо поступу

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

Розділ 6. Довідка щодо команд меню
Довідка щодо команд меню

# Розділ 6. Довідка щодо команд меню

## Головне вікно kdesvn

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

Файл → Відкрити... (Ctrl+O)

  Відкрити локальну робочу копію або попередньо отриману копію сховища.

Файл → Нещодавно відкриті адреси

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

Файл → Створити (Ctrl+N)

  Відкрити вікно із новим екземпляром kdesvn.

Файл → Адміністрування Subversion

  Пункти меню адміністрування сховищ subversion, зокрема:

  Створити і відкрити нове сховище
  Створити дамп сховища у файлі
  Скопіювати сховище
  Завантажити дамп до сховища

  . Докладніший опис наведено у довідкових даних, які можна отримати за допомогою команди svnadmin --help

Файл → Закрити (Ctrl+W)

  Закрити поточне відкрите сховище або робочу копію.

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

  Завершити роботу kdesvn.

### Меню «Закладки»

Див. підручник з Konqueror.

### Меню «Subversion»

Загальні дії з subversion

Subversion → Загальне → Журнал елемента (Ctrl+L)

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

Subversion → Загальне → Журнал елемента без дій з копіювання... (Ctrl+Shift+L)

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

Subversion → Загальне → Подробиці (Ctrl+I)

  Показати докладну інформацію щодо позначеного елемента або елементів.

Subversion → Загальне → Визначити автора

  Створити анотований список усіх внесків. Побудова списку може бути доволі тривалою!

Subversion → Загальне → Визначення авторства у діапазоні

  Анотувати діапазон внесків для файла.

Subversion → Загальне → Отримати HEAD

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

Subversion → Загальне → Пересунути (F2)

  Пересунути або перейменувати елемент у робочій копії або сховищі.

Subversion → Загальне → Копіювати (Ctrl+C)

  Копіювати елемент у робочій копії або сховищі.

Subversion → Загальне → Вилучити позначені файли або каталоги (Del)

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

Subversion → Загальне → Нова тека

  Створити каталог.

Subversion → Загальне → Імпортувати теки до поточної

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

Subversion → Загальне → Отримати зі сховища

  Створити нову робочу копію сховища.

Subversion → Загальне → Експортувати сховище

  Експортувати сховище до файлової системи тобто створити чисте дерево версій без інформації subversion.

Subversion → Загальне → Заблокувати поточні елементи

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

Subversion → Загальне → Розблокувати поточні елементи

  Розблокувати поточні позначені елементи. Перш ніж скористатися цією можливістю, ознайомтеся з відповідним розділом підручника з subversion.

Робоча копія

Subversion → Робоча копія → Оновити до HEAD

  Оновити робочу копію до HEAD сховища.

Subversion → Робоча копія → Оновити до модифікації...

  Оновити робочу копію до вказаної модифікації у сховищі.

Subversion → Робоча копія → Надіслати (Ctrl+#)

  Надіслати зміни з робочої копії позначених елементів до сховища.

Subversion → Робоча копія → Різниця для локальних змін (Ctrl+D)

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

Subversion → Робоча копія → Різниця для HEAD (Ctrl+H)

  Порівняти поточну робочу копію з HEAD сховища.

Subversion → Робоча копія → Властивості (Ctrl+P)

  Переглянути або змінити властивості, пов’язані з поточним записом.

Subversion → Робоча копія → Додати позначені файли або каталоги (Insert)

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

Subversion → Робоча копія → Скасувати поточні зміни

  Скасувати зміни, внесені до робочої копії, і оновити дані до найновішого стану у сховищі.

Subversion → Робоча копія → Позначити як розв’язане

  Позначити конфліктні елементи як неконфліктні і вилучити пов’язані з конфліктом файли.

Subversion → Робоча копія → Об’єднати дві модифікації

  Об’єднати дві модифікації записів до робочої копії.

Subversion → Робоча копія → Ігнорувати або скасувати ігнорування поточного елемента

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

Subversion → Робоча копія → Очистити

  Очистити робочу копію і вилучити блокування, якщо такі було встановлено.

Subversion → Робоча копія → Перемкнути сховище

  Перемкнути кореневу адресу для поточної робочої копії.

Сховище

Subversion → Сховище → Отримати дані за поточним шляхом сховища

  Створити робочу копію з поточного позначеного запису, якщо це каталог.

Subversion → Сховище → Експортувати поточний шлях сховища

  Створити у локальній файловій системі копію поточного позначеного запису, якщо цим записом є каталог.

Дії з перегляду

Subversion → Перегляд → Освіжити перегляд (F5)

  Освіжити дані щодо поточного стану показаних елементів. Буде надіслано запит щодо показу поточного стану для кожного з елементів у списку.

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

  Розгорнути або згорнути перегляд ієрархії сховища.

Subversion → Кеш журналу → Припинити оновлення кешу журналу

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

Subversion → Додати профілі ssh до ssh-agent

  Зберегти ваш пароль до ключа SSH на час поточного сеансу, отже, вам не доведеться повторно вводити цей пароль.

### Меню «База даних»

База даних → Показати вміст бази даних

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

База даних → Параметри поточного сховища

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

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

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

Параметри → Швидке налаштовування
  Завантажувати останню відкриту адресу після запуску

    Перезавантажувати останню відкриту адресу, якщо у командному рядку не вказано іншої адреси.

  Журнали змінюються відповідно до змін вузлів

  Показувати ігноровані файли

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

  Показувати невідомі файли

    Показати файли, які не додано до сховища subversion.

  Приховувати незмінені файли

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

  Працювати в мережі

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

Розділ 7. Авторські права, подяки та умови ліцензування
Авторські права, подяки та умови ліцензування

# Розділ 7. Авторські права, подяки та умови ліцензування

Авторські права на програму належать Rajko Albrecht `(ral AT alwins-world.de)`, 2005–2009

Велика подяка усім учасникам розробки:

- Andreas Richter `(ar AT oszine.de)` — за портування svnqt на qt4

- Michael Biebl `(biebl AT teco.edu)` — за значну допомогу, ідеї, реалізацію і підказки.

- Bram Schoenmakers `(bramschoenmakers AT kde.nl)` — підказки щодо специфіки KDE, переклад голландською, чищення коду.

Дякуємо усім іншим перекладачам (автор ніколи не думав, що отримає так багато перекладів так швидко), а також усім, хто надіслав свої позитивні і негативні відгуки. Ви усі дуже допомогли!

Якщо вам потрібен переклад kdesvn вашою рідною мовою і ви хочете допомогти, будь ласка, ознайомтеся зі сторінкою команди локалізаторів KDE або задайте свої питання у списку листування `(kde-i18n-doc AT kde.org)`.

Авторські права на документацію належать Rajko Albrecht `(ral AT alwins-world.de)`, 2005–2006

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

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

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

Додаток A. Синтаксис для модифікацій
Синтаксис для модифікацій

# Додаток A. Синтаксис для модифікацій

Модифікації можна вказувати у тому самому форматі, що і у стандартному клієнті svn. Це означає: число, ключове слово або дата.

Номер

  Число більше або рівне -1. -1 означає «невизначена модифікація», 0 — початкова модифікація. Зазвичай, ці числа не вслід використовувати (більшість дій з ними не можна виконувати).

Ключове слово

  Одне з

  - HEAD

  - BASE

  - COMMITED

  - PREV

  - START

  - WORKING

  Регістр ключових слів має значення. Наприклад, «head» це не те саме, що «HEAD».

Дата

  Дату слід вказувати у форматі {YYYY-MM-DD}. Слід використовувати двоцифрові позначення для місяця і дня. Наприклад, 2005-1-1 має бути записано так: {2005-01-01}.

Додавання певної модифікації до адреси завжди виконується так: «?rev=`модифікація`».