Jump to content

Система контроля исходного кода

Система контроля исходного кода (SCCS)
Оригинальный автор(ы) Марк Дж. Рочкинд
Разработчик(и) Белл Лаборатории
Первоначальный выпуск 1973 год ; 51 год назад ( 1973 ) [ обсуждать ]
Репозиторий Н/Д
Написано в Первая версия: СНОБОЛ4
Переписать: С
Операционная система OS/360 , Unix , Unix-подобные
Платформа IBM System/370 , PDP-11 , IA-32
Тип Контроль версий
Лицензия проприетарные лицензии, Общая лицензия на разработку и распространение
Веб-сайт Базовые спецификации открытой группы, выпуск 7, IEEE Std 1003.1-2008, издание 2016 г.

Система контроля исходного кода ( SCCS ) — это система контроля версий, предназначенная для отслеживания изменений в исходном коде и других текстовых файлах во время разработки программного обеспечения. Это позволяет пользователю получить любую из предыдущих версий исходного исходного кода и сохраненных изменений. Первоначально он был разработан в Bell Labs в конце 1972 года Марком Рочкиндом для компьютера IBM System/370 под управлением OS/360 . [1]

Характерной особенностью SCCS является строка scccid , встроенная в исходный код и автоматически обновляемая SCCS для каждой ревизии. [2] Этот пример иллюстрирует его использование в языке программирования C :

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

Эта строка содержит имя файла, дату, а также может содержать комментарий. После компиляции строку можно найти в двоичных и объектных файлах, выполнив поиск по шаблону @(#) и может использоваться для определения того, какие файлы исходного кода использовались во время компиляции. what доступна команда для автоматизации поиска строк версии. [3]

В 1972 году Марк Рочкинд разработал SCCS в SNOBOL4 в Bell Labs для компьютера IBM System/370 под управлением OS/360 MVT . [1] Он переписал SCCS на языке программирования C для использования под UNIX , а затем в 1973 году запустил его на PDP-11 .

Первой публично выпущенной версией была версия 4 SCCS от 18 февраля 1977 года. [4] Он был доступен в Programmer's Workbench версии операционной системы (PWB) . Выпуск 4 SCCS был первой версией, в которой использовался текстовый формат файла истории; более ранние версии использовали форматы файлов истории в двоичном формате. Выпуск 4 больше не писался и не поддерживался Марком Рочкиндом. Впоследствии SCCS был включен в AT&T компании System III и System V коммерческие дистрибутивы . Он не был лицензирован для 32V , предшественника BSD . [5] Набор команд SCCS теперь является частью Единой спецификации UNIX .

SCCS была доминирующей системой контроля версий для Unix, пока более поздние контроля версий системы , особенно RCS и более поздняя CVS , не получили более широкое распространение. Сегодня эти ранние системы контроля версий обычно считаются устаревшими, особенно в сообществе разработчиков ПО с открытым исходным кодом , которое в основном использует распределенные системы контроля версий . Однако формат файла SCCS по-прежнему используется внутри некоторых новых программ контроля версий, включая BitKeeper и TeamWare . Последний является интерфейсом SCCS. Sablime , заархивированный 22 июля 2016 г. на Wayback Machine, был разработан на основе модифицированной версии SCCS. [6] но использует формат файла истории, несовместимый с SCCS. Формат файла SCCS использует метод хранения, называемый чередующимися дельтами (или переплетением [7] ). теперь считают этот метод хранения Многие разработчики систем контроля версий основой передовых методов слияния и управления версиями. [8] например, слияние "Precision Codeville" ("pcdv").

Помимо исправления проблем 2000 года в 1999 году, не велось активной разработки различных версий SCCS для UNIX, специфичных для конкретных поставщиков. [9] В 2006 году компания Sun Microsystems (сегодня часть Oracle ) выпустила Solaris версию SCCS для с открытым исходным кодом под лицензией CDDL в рамках своих усилий по открытию исходного кода Solaris. [10]

Система контроля исходного кода (SCCS) — это система контроля изменений файлов и истории. Программное обеспечение обычно обновляется до новой версии путем исправления ошибок, оптимизации алгоритмов и добавления дополнительных функций. [11] Изменение программного обеспечения вызывает проблемы, для решения которых требуется контроль версий. [1]

  • Исходный код занимает слишком много места, поскольку повторяется в каждой версии.
  • Получить информацию о том, когда и где произошли изменения, сложно.
  • Найти именно ту версию, с которой у клиента проблемы, сложно.

SCCS был создан для решения этих проблем. У SCCS от AT&T было пять основных версий для ОС IBM и пять основных версий для UNIX. [12] Двумя конкретными реализациями, использующими SCCS, являются: PDP 11 под Unix и IBM 370 под ОС. [1]

SCCS состоит из двух частей: команд SCCS и файлов SCCS. [13] Все основные операции (например, создание, удаление, редактирование) могут быть реализованы с помощью команд SCCS. [13] Файлы SCCS имеют уникальный префикс формата. s., который управляется командами SCCS. [2]

SCCS-файлы

[ редактировать ]

Файл SCCS состоит из трех частей: [14]

  • Таблица дельты
  • Флаги доступа и отслеживания
  • Основная часть текста

Таблица дельты

[ редактировать ]

В SCCS дельта — это одна редакция в файле SCCS. Дельта-таблица хранится в таблице изменений, поэтому каждый файл SCCS имеет собственную запись изменений. [14]

Флаги контроля и отслеживания в файлах SCCS

[ редактировать ]

Каждая операция каждого файла SCCS отслеживается флагами. Их функции следующие: [14]

  • Установка разрешений на редактирование каждого файла SCCS.
  • Контролируйте каждый выпуск каждого файла SCCS.
  • Разрешение совместного редактирования каждого файла SCCS.
  • Взаимные ссылки на изменения каждого файла SCCS.

SCCS использует три типа контрольных записей для отслеживания вставок и удалений, применяемых в различных дельтах. Это управляющая запись вставки, управляющая запись удаления и конечная управляющая запись. Всякий раз, когда пользователь изменяет какую-либо часть текста, вокруг этого изменения вставляется контрольная запись. Управляющие записи хранятся в теле вместе с исходными текстовыми записями. [1]

Основные команды SCCS

[ редактировать ]

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

Создавать

[ редактировать ]

Команда 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

Отредактируйте конкретный файл.

Команда представляет собой макрос, который расширяется до -e .

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

Проверьте новую версию и получите новую версию от scs.

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

Получать

[ редактировать ]
$ sccs get program.c
1.1
87 lines

Выходные данные — это версия и строки, которые вы хотите получить из конкретного файла.

$ sccs prt program.c

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

Реализации

[ редактировать ]

UNIX-версии SCCS

[ редактировать ]

Большинство версий UNIX включают версию SCCS, которая, однако, часто уже не разрабатывается активно. [17] [ нужен лучший источник ]

Вилка Йорга Шиллинга

[ редактировать ]

Покойный Йорг Шиллинг [ де ] (который просил выпустить SCCS на заре проекта OpenSolaris ) [18] поддерживал форк SCCS [19] [20] основанный на исходном коде OpenSolaris. Он получил значительные улучшения функций, но остается совместимым с исходными версиями SCCS, если не используется режим «нового проекта». [21]

Семейный проект

[ редактировать ]

Проект Heirloom включает версию SCCS, полученную из OpenSolaris. исходного кода [22] и поддерживался с декабря 2006 г. по апрель 2007 г. [23]

Утилита преобразования GNU

[ редактировать ]

GNU предлагает совместимую с SCCS программу GNU CSSC («Compatible Stupid Source Control»), которая иногда используется для преобразования архивов SCCS в более новые системы, такие как CVS или Subversion ; [24] это не полный [25] Реализация SCCS не рекомендуется для использования в новых проектах, а в основном предназначена для перехода на современную систему контроля версий.

Другие системы контроля версий

[ редактировать ]

С 1990-х годов было разработано и стало популярным множество новых систем контроля версий , предназначенных для управления проектами с большим количеством файлов и предлагающих расширенные функциональные возможности, такие как многопользовательская работа, контроль доступа, автоматическое создание, поддержка сети, управление выпусками. и распределенный контроль версий . Bitkeeper и TeamWare используют формат файлов SCCS внутри себя и могут считаться преемниками SCCS. [26] [27]

В системах BSD SCCSID заменяется RCSID, начинающимся и заканчивающимся на $ ; соответствующий инструмент идент . [28] Эта система изначально используется RCS и добавляется автоматически при оформлении заказа. Полученные идентификаторы контроля версий исходного кода задокументированы в NetBSD. [29] и FreeBSD [30] руководства по стилю для собственных баз кода. NetBSD определяет пользовательское ключевое слово $NetBSD: ...$ в то время как FreeBSD определяет $FreeBSD: ...$ и переименованный макрос __ФБСИДИД .

Система контроля версий SRC также может использовать внутренний формат файлов SCCS (или форматы RCS ) и призвана обеспечить лучший пользовательский интерфейс для SCCS, при этом управляя только однофайловыми проектами. [31]

  1. ^ Jump up to: а б с д и Рочкинд, Марк Дж. (декабрь 1975 г.), «Система управления исходным кодом» (PDF) , Транзакции IEEE по разработке программного обеспечения , том. СЭ-1, нет. 4, стр. 364–370, doi : 10.1109/tse.1975.6312866 , S2CID   10006076 , заархивировано из оригинала (PDF) 25 мая 2011 г. , получено 8 июля 2005 г.
  2. ^ Jump up to: а б Оракул. «Глава 5 Система контроля исходного кода SCCS» . Руководство по утилитам программирования .
  3. ^ "что" . IEEE и Открытая группа. нд . Проверено 28 ноября 2022 г.
  4. ^ http://sccs.sourceforge.net/PWB.html Объявление AT&T для SCCSv4.
  5. ^ Справочная страница SCCS What(1) из 4BSD, 1980, на веб-сайте Общества наследия Unix . Архивировано 31 августа 2005 г. в Wayback Machine .
  6. ^ Эстюблиер, Джеки, Дэвид Лебланг, Андре ван дер Хук , Рейдар Конради, Джеффри Клемм, Вальтер Тичи и Дарси Выборг-Вебер. «Влияние исследований в области разработки программного обеспечения на практику управления конфигурацией программного обеспечения». Транзакции ACM по разработке программного обеспечения и методологии (TOSEM) 14 (октябрь 2005 г.): 383–430.
  7. ^ Хадсон, Грег (03 октября 2002 г.), Примечания по хранению истории версий файлов , Неопубликованные личные заметки
  8. ^ Эстюблиер, Джеки, Дэвид Лебланг, Андре ван дер Хук , Рейдар Конради, Джеффри Клемм, Вальтер Тичи и Дарси Выборг-Вебер. «Влияние исследований в области разработки программного обеспечения на практику управления конфигурацией программного обеспечения». ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (октябрь 2005 г.): стр.398.
  9. ^ Что такое SCCS , операционная система GNU
  10. ^ Стивен Лау, Sun Microsystems (19 декабря 2006 г.). «SCCS/сделать источник доступным» . Архивировано из оригинала 25 апреля 2012 года . Проверено 14 ноября 2011 г.
  11. ^ Выбор домашней организации ПроКвест   215925387
  12. ^ Эволюция системы контроля исходного кода. Алан Л. Глассер, опубликовано в журнале sigmetrics, ноябрь 1978 г., когда SCCS в UNIX была версии 4.
  13. ^ Jump up to: а б «СККС» . www-h.eng.cam.ac.uk . Проверено 12 сентября 2016 г.
  14. ^ Jump up to: а б с IBM (7 июня 2018 г.). «Общие концепции программирования: написание и отладка программ» . Центр знаний IBM .
  15. ^ Введение в систему контроля исходного кода Эрик Оллман, Project Ingres, Калифорнийский университет в Беркли
  16. ^ системы управления исходным кодом Руководство по утилитам программирования
  17. ^ Койке, Хидеки и Хуэй-Чу Чу. «VRCS: Интеграция контроля версий и управления модулями» с использованием интерактивной трехмерной графики». Визуальные языки, 1997. Труды. 1997. Симпозиум IEEE. ИИЭР, 1997.
  18. ^ "os.solaris.opensolaris.rfe - Re: star - msg#00001 - Недавнее обсуждение OSDir.com" . osdir.com . Проверено 10 сентября 2016 г.
  19. ^ Веб-сайт разработки SCCS Йорга Шиллинга.
  20. ^ «Коллекция инструментов, написанных или ранее управляемых Йоргом Шиллингом» . Кодеберг . 22 октября 2022 г. Проверено 28 ноября 2022 г. разработку подхватила группа волонтеров, которые хотели бы сохранить проект живым и процветающим
  21. ^ Веб-сайт Schily SCCS : «Останется ли будущая версия SCCSv6 совместимой с POSIX и историческими реализациями SCCS?»
  22. ^ Гуннар Риттер (20 июня 2010 г.). «Инструменты разработки семейной реликвии» . Проверено 4 ноября 2011 г.
  23. ^ http://heirloom.cvs.sourceforge.net/viewvc/heirloom/heirloom-devtools/sccs/ см. историю CVS.
  24. ^ Утилита преобразования SCCS2SVN. Архивировано 22 декабря 2009 г. на Wayback Machine , которая работает как с SCCS, так и с CSSC.
  25. ^ Список ограничений GNU CSSC в документации.
  26. ^ "ревтул" . Документация BitKeeper .
  27. ^ «Введение в Sun WorkShop TeamWare» . docs.oracle.com . Проверено 10 сентября 2016 г.
  28. ^ ident(1) NetBSD по общим командам Руководство
  29. ^ "src/share/misc/style version 1.64" . Репозиторий CVS NetBSD.
  30. ^ style(9) FreeBSD . разработчика ядра Руководство
  31. ^ «Страница ресурсов для src 1.29» . 21 января 2022 г. . Проверено 28 ноября 2022 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9000874e98718e323d630cc8d9f8dca1__1713396720
URL1:https://arc.ask3.ru/arc/aa/90/a1/9000874e98718e323d630cc8d9f8dca1.html
Заголовок, (Title) документа по адресу, URL1:
Source Code Control System - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)