Source Code Control System

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Source Code Control System (SCCS)
Тип Version control
Автор Марк Рочкинд
Разработчик Лаборатории Белла
Написана на Первая версия: Снобол4
Переписано: Си
Операционные системы OS/360, Unix, Unix-подобные
Первый выпуск 1973; 52 года назад (1973)
Аппаратные платформы IBM System/370, PDP-11, IA-32
Лицензия проприетарные лицензии, Common Development and Distribution License
Сайт The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 Edition

Source Code Control System (SCCS) — первая система управления версиями, разработанная в Bell Labs в 1972 году Марком Рочкиндом (англ. Marc J. Rochkind) для компьютеров IBM System/370, работавшая под управлением OS/MVT. В дальнейшем была создана версия для PDP-11 под управлением операционной системы UNIX. В дальнейшем SCCS была включена в состав нескольких вариантов UNIX. Набор команд SCCS в настоящее время является частью Single UNIX Specification.

SCCS являлась самой распространённой системой управления версиями до появления RCS. Несмотря на то, что в настоящее время SCCS следует признать устаревшей системой, формат файлов, разработанный для SCCS, до сих пор используется некоторыми системами управления версиями, такими как BitKeeper и TeamWare. Система Sablime также позволяет использовать файлы SCCS.[1] Для хранения изменений SCCS использует т. н. технику чередующихся изменений (англ. interleaved deltas). Данная техника используется многими современными системами управления версиями в качестве основы для изощрённых методов слияния.

Система SCCS также известна так называемой sccs_id-строкой, например:

static char sccsid[] = "@(#)ls.c        8.1 (Berkeley) 6/11/93";

Строка содержит имя файла, дату, возможно, что-то еще. После компиляции эту строку по шаблону «@(#)» легко отыскать в бинарных и объектных файлах и определить, какие исходные файлы использовались при компиляции.

Базовые команды SCCS

[править | править код]

SCCS предоставляет набор команд в виде макросов, которые выполняют или инициируют функции управления исходным кодом с простым синтаксисом, например create, get, edit, prt.[2][3] Он также предоставляет доступ к истории изменений управляемых файлов. Эти команды реализованы в виде аргументов глаголов для программы-драйвера sccs.

Команда create использует текст исходного файла для создания нового файла истории. Например:

$ sccs create program.c
program.c:
1.1
87 lines

В результате выполнения отображаются имя, версия и количество строк кода.

Эта команда представляет собой макрос, который разворачивается в admin для создания нового файла истории, а затем в get для получения этого файла.

$ sccs edit program.c
1.1
new delta 1.2
87 lines

Редактировать конкретный файл.

Эта команда представляет собой макрос, который разворачивается в get -e.

$ sccs delget program.c
comments? main function enhanced
1.2
10 inserted
0 deleted
87 unchanged
1.2
97 lines

Проверить наличие новой версии и получить новую версию из sccs.

Эта команда представляет собой макрос, который разворачивается в delta для проверки наличия нового файла версии, а затем в get для получения этого файла.

$ sccs get program.c
1.1
87 lines

В результате выполнения программы отображаются версия и строки, которые вы хотите получить из конкретного файла.

$ sccs prt program.c

Эта команда создает отчет об изменениях в исходном коде.

Системы UNIX, включавшие SCCS

[править | править код]

Примечания

[править | править код]
  1. Sablime® Configuration Management System. Дата обращения: 22 сентября 2010. Архивировано из оригинала 16 июня 2007 года.
  2. An Introduction to the Source Code Control System Eric Allman, Project Ingres, University of California at Berkeley
  3. Source Code Control System Programming Utilities Guide
  • SCCS Sourceforge.net
  • GNU CSSC («Compatibly Stupid Source Control»), совместимая с SCCS программа, призванная помочь в переходе с SCCS на более современные системы управления версиями, такие как CVS или Subversion; GNU CSSC не рекомендуется для использования в новых проектах.