Робота з файлами – ЧАСТИНА 5

Потім recover-session запитує про кожен файл, який редагувався під час цього сеансу, чи потрібно його відновлювати Якщо ви відповідаєте y, вона викликає recoverfile Ця команда працює звичайним способом: показує дати оригінального файлу і його самозбереження версії і питає ще раз, чи потрібно його відновлювати

Коли recover-session завершується, всі файли, які ви вирішили відновити, присутні в буферах Emacs Тепер вам потрібно їх зберегти Тільки це – їх збереження – оновлює самі файли

Перервані сеанси записуються для подальшого відновлення в файлах з іменами ~ / Saves-pid-Машина . Частина ~ / Saves цих імен виходить з знаеченія autosave-list-file-prefix Ви можете зробити так, щоб записи про сеанси трималися в іншому місці, встановлюючи цю змінну у вашому файлі . Emacs, але вам також доведеться перевизначити recover-session, щоб вона шукала в новому місці Якщо у файлі

‘. Emacs ви встановите auto-save-list-file-prefix рівний nil, сеанси не будуть запису-

тися для відновлення

146  Псевдоніми файлів

Символьні посилання і жорсткі посилання дозволяють одному і тому ж файлу мати кілька імен Жорсткі посилання – це альтернативні імена, що посилаються безпосередньо на файл всі імена однаково правильні, і жодне з них не є кращим Навпаки, символьні посилання – це вид певних псевдонімів: коли файл foo є символічним посиланням на bar, ви можете використовувати обидва імені, але дійсним імям буде bar, тоді як foo – це просто псевдонім Більш складні ситуації виникають, коли символьні посилання вказують на каталоги

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

Якщо ви хочете уникнути звернення до одного і того ж файлу в двох буферах під різними іменами, встановіть змінну find-file-existing-other-name в відмінне від nil значення Тоді find-file використовує існуючий буфер, який звертається до цього файлу, незалежно від того, яке імя ви задасте

Якщо змінна find-file-visit-truename не дорівнює nil, то для буферів записується істинні імена файлів (одержувані заміною всіх символьних посилань на їх цільові імена), а не імена, задані вами Установка find-file-visit-truename також має на увазі дію find-file-existing-other-name

147  Управління версіями

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

Інтерфейс Emacs для управління версіями називається VC Його команди працюють з трьома системами управління версіями – RCS, CVS і SCCS Проект GNU рекомендує RCS і CVS, які є вільними програмами, і їх можна отримати від Фонду Вільного Програмного забезпечення

1471  Вступ до управління версіями

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

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

14711  Підтримувані системи управління версіями

На даний момент VC працює з трьома різними системами управління версіями або

“Постпроцесорі: RCS, CVS і SCCS

RCS – це вільна система керування версіями, її можна отримати від Фонду Вільного Програмного забезпечення Ймовірно, це найбільш розвинений з підтримуваних постпроцесорів, і команди VC концептуально найближче до RCS Майже все, що ви можете робити з RCS, можна зробити через VC

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

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

14712  Концепції управління версіями

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

Файл, супроводжуваний управлінням версій, іноді називається робочим файлом, відповідним його майстер-файлу Ви редагуєте робочий файл і робите в ньому зміни, як ви робили б йдля звичайного файлу (В SCCS і RCS ви повинні блокувати файл перед тим, як почати його редагувати) Після того, як ви зробили деякі зміни, ви фіксуєте цей файл, що записує ці зміни у майстер-файлі разом з журнальної записом для них

У CVS зазвичай буває багато робочих файлів, що відповідають одному майстер-файлу

– Часто у кожного користувача є своя копія Таким способом можна використовувати і

RCS, але це не звичайний метод її застосування

У системі управління версіями як правило є якийсь механізм для координування користувачів, які хочуть редагувати один і той же файл Один із способів – блокування (аналогічне блокуванню, яке Emacs застосовує для відстеження

спроб одночасного редагування файлу, але відмінне від нього) Інший метод

– Обєднання ваших змін із змінами іншої людини при їх фіксуванні

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

Для RCS є інша альтернатива – дозволити кожному користувачеві змінювати робочий файл в будь-який час У такому режимі у блокуванні немає потреби, але воно дозволяється запис нової версії раніше проводиться шляхом фіксування

CVS зазвичай дозволяє кожному користувачеві змінювати свою власну копію робочого файлу в будь-який час, але вимагає обєднання з версіями інших користувачів під час фіксування Однак, CVS теж можна налаштувати так, щоб вона вимагала блокування (Див Розділ 14791 [Параметри постпроцесора], с 130)

1472  Управління версіями і рядок режиму

Коли ви звертаєтеся до файлу, який знаходиться під контролем системи управління версіями, Emacs показує це в рядку режиму Наприклад, RCS-13 каже, що для цього файлу використовується RCS, а поточна версія – 13

Знак між імям постпроцесора і номером версії показує статус цього файлу в системі управління версіями Дефіс – каже, що робочий файл не заблокований (якщо блокування використовується) або змінений (якщо блокування не використовується) Знак : показує, що файл блокований або змінений Якщо файл блокував якийсь інший користувач (скажімо, jim), це відображається як RCS: jim: 13.

1473  Основи редагування з керуванням версіями

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

C-x C-q

Cx vv Робить наступну логічну операцію управління версіями для цього фай-

ла

Строго кажучи, команда для цього називається vc-next-action, вона привязана до Cx v v Однак, звичайне значення Cx Cq – робити буфери, призначені тільки для читання, доступними для запису або навпаки ми розширили її так, щоб вона правильно робила це ж для файлів, що знаходяться під контролем системи управління версіями, виробляючи відповідні операції Коли ви набираєте Cx Cq в зарегістрірованнм файлі, вона поводиться, як Cx v v

Точне дію цієї команди залежить від стану файлу і від того, чи використовує система керування версіями блокування чи ні SCCS і RCS зазвичай використовують блокування CVS зазвичай не використовує

14731  Основи управління версіями з блокуванням

Джерело: Річард Столмен, Керівництво по GNU Emacs

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


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

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

Ваш отзыв

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

*

*