SCCSFILE(4) SCCSFILE(4) НАЗВАНИЕ sccsfile - формат SCCS-файла ОПИСАНИЕ SCCS-файл является текстовым файлом. Он состоит из шести логических частей. Это контрольная сумма, таблица версий (информация о каждой версии), имена пользовате- лей (входные имена и/или числовые идентификаторы групп пользователей, которые создавали версии), флаги (опре- деления внутренних ключевых слов), комментарии (описа- тельная информация о файле) и тело (реальные текстовые строки, перемешанные с управляющими строками). В SCCS-файле могут встречаться строки, начинающиеся с кода ASCII 001. Этот символ мы будем называть управляю- щим символом и обозначать @. Все допустимые вхождения управляющего символа ниже оговариваются явно. Запись вида DDDDD представляет цепочку из пяти цифр (число от 00000 до 99999). Ниже подробно описываются логические части SCCS-файла. Контрольная сумма Контрольная сумма - это первая строка SCCS-файла. Фор- мат этой строки следующий: @hDDDDD Значением контрольной суммы является сумма всех симво- лов файла, кроме символов первой строки. Сочетание @h есть магическое число SCCS-файла. Таблица версий Таблица версий состоит из переменного числа элементов вида |@s DDDDD/DDDDD/DDDDD |@d тип с_ид гг/мм/дд чч:мм:сс вх_имя DDDDD DDDDD |@i DDDDD ... |@x DDDDD ... |@g DDDDD ... |@m номер запроса на модификацию | .... |@c комментарий | ... |@e Первая строка (@s) содержит число вставленных/удален ных/измененных строк соответственно. Вторая строка (@d) содержит тип версии (D - существующая, R - удаленная), идентификатор SCCS-версии, дату и время создания вер- сии, входное имя пользователя, создавшего версию, по- рядковые номера версии и ее предшественника. Строки @i, @x и @g содержат порядковые номера включен- ных, исключенных и игнорируемых версий, соответственно. Эти строки могут отсутствовать. Строки @m (которые могут отсутствовать) содержат номера запросов на модификацию, связанные с этой версией, строки @c содержат комментарии, связанные с этой верси- ей. Строка @e завершает элемент таблицы версий. Имена пользователей Список входных имен и/или числовых идентификаторов групп пользователей, которые могут добавлять версии в файл, по одному имени в строке. Список в целом обрамля- ется строками @u и @U. Пустой список означает, что но- вые версии может создать кто угодно. Каждая строка, на- чинающаяся со знака !, запрещает создание новых версий указанным пользователям или группам. Флаги Внутренние ключевые слова [см. admin(1)]. Каждый флаг имеет вид: @f флаг текст при этом текст может отсутствовать. Определены следующие флаги: |@f t тип программы |@f v имя программы |@f i |@f b |@f m имя модуля |@f f мин версия |@f c макс версия |@f d версия по умолчанию |@f n |@f j |@f l закрытые версии |@f q значение, определенное пользователем |@f z зарезервировано для интерфейсов Флаг t определяет подстановку вместо идентифицирующего ключевого слова %Y%. Флаг v управляет заданием номеров запросов на модификацию в дополнение к комментариям, если присутствует текст, он задает программу проверки номеров запросов. Флаг i управляет тем, считается ли сообщение "No id keywords" предостережением или ошиб- кой. Если флага i нет, это сообщение является предосте- режением, иначе - фатальной ошибкой (то есть файл не будет извлечен или версия не будет создана). Если при- сутствует флаг b, в команде get можно использовать оп- цию -b для создания ответвления от дерева версий. Флаг m определяет первый формат размещения значения иденти- фицирующего ключевого слова %M%. Флаг f задает мини- мальную версию, которая может быть выбрана для редакти- рования, то есть версии ниже нее не могут быть добавле- ны. Флаг c задает максимальную версию, которая может быть выбрана для редактирования, то есть версии выше нее не могут быть добавлены. Флаг d задает номер версии по умолчанию, если он не указан в команде get(1). Нали- чие флага n приводит к тому, что delta(1) при создании новой версии будет создавать пустыми все пропущенные версии (например, создавая версию 5.1 после версии 2.7 имеем пропущенные версии 3 и 4). Эти пустые версии мо- гут затем быть использованы для новых ветвей. Отсутст- вие флага n приводит к отсутствию пропущенных версий в SCCS-файле, использовать их в будущем для новых ветвей нельзя. Флаг j означает, что допускается использование нескольких команд get(1) одновременно для редактирова- ния одной и той же версии SCCS-файла. Флаг l задает список версий, закрытых для редактирования (get(1) с опцией -e). Флаг q задает подстановку вместо идентифи цирующего ключевого слова %Q%. Флаг z используется в специализированных интерфейсных программах. Комментарии Любой текст, окруженный строками @t и @T. Обычно секция комментариев содержит описание назначения файла. Тело Тело состоит из текстовых и управляющих строк. Тексто- вые строки, в противоположность управляющим, не начина- ются с управляющего символа. Имеются три вида управляю- щих строк: вставка, удаление и конец, имеющих формат, соответственно |@I DDDDD |@D DDDDD |@E DDDDD Цепочка цифр задает порядковый номер версии, соответст- вующей данной управляющей строке. СМ. ТАКЖЕ admin(1), delta(1), get(1), prs(1).