This article needs additional citations for verification. (March 2010) |
Autor(es) original(es) | Marc J. Rochkind |
---|---|
Desarrollador(es) | Laboratorios Bell |
Lanzamiento inicial | 1973 discutir ] (1973) | [
Repositorio | N / A |
Escrito en | Primera versión: SNOBOL4 Reescritura: C |
Sistema operativo | OS/360 , Unix , similar a Unix |
Plataforma | Sistema IBM/370 , PDP-11 , IA-32 |
Tipo | Control de versiones |
Licencia | licencias propietarias, Licencia Común de Desarrollo y Distribución |
Sitio web | Especificaciones básicas de Open Group, número 7, IEEE Std 1003.1-2008, edición 2016 |
El Sistema de Control de Código Fuente ( SCCS ) es un sistema de control de versiones diseñado para realizar un seguimiento de los cambios en el código fuente y otros archivos de texto durante el desarrollo de un software. Esto permite al usuario recuperar cualquiera de las versiones anteriores del código fuente original y los cambios que se almacenan. Fue desarrollado originalmente en Bell Labs a fines de 1972 por Marc Rochkind para una computadora IBM System/370 que ejecutaba OS/360 . [1]
Una característica distintiva de SCCS es la cadena sccsid que está incrustada en el código fuente y que SCCS actualiza automáticamente para cada revisión. [2] Este ejemplo ilustra su uso en el lenguaje de programación C :
carácter estático sccsid [] = "@(#)ls.c 8.1 (Berkeley) 6/11/93" ;
Esta cadena contiene el nombre del archivo, la fecha y también puede contener un comentario. Después de la compilación, la cadena se puede encontrar en archivos binarios y de objetos buscando el patrón @(#)
y se puede utilizar para determinar qué archivos de código fuente se utilizaron durante la compilación. El what
comando está disponible para automatizar esta búsqueda de cadenas de versión. [3]
En 1972, Marc Rochkind desarrolló SCCS en SNOBOL4 en Bell Labs para una computadora IBM System/370 que ejecutaba OS/360 MVT . [1] Reescribió SCCS en el lenguaje de programación C para su uso en UNIX , que entonces se ejecutaba en un PDP-11 , en 1973.
La primera versión publicada públicamente fue la versión 4 de SCCS del 18 de febrero de 1977. [4] Estaba disponible con la edición Programmer's Workbench (PWB) del sistema operativo . La versión 4 de SCCS fue la primera versión que utilizó un formato de archivo de historial basado en texto, las versiones anteriores sí usaban formatos de archivo de historial binario. La versión 4 ya no fue escrita ni mantenida por Marc Rochkind. Posteriormente, SCCS se incluyó en las distribuciones comerciales System III y System V de AT&T . No fue licenciado con 32V , el antecesor de BSD . [5] El conjunto de comandos SCCS ahora es parte de la Especificación Única de UNIX .
SCCS fue el sistema de control de versiones dominante para Unix hasta que los sistemas de control de versiones posteriores , en particular el RCS y más tarde el CVS , ganaron una adopción más generalizada. Hoy en día, estos primeros sistemas de control de versiones generalmente se consideran obsoletos, particularmente en la comunidad de código abierto , que ha adoptado en gran medida los sistemas de control de versiones distribuidos . Sin embargo, el formato de archivo SCCS todavía se usa internamente en algunos programas de control de versiones más nuevos, incluidos BitKeeper y TeamWare . Este último es una interfaz para SCCS. Sablime [6] se ha desarrollado a partir de una versión modificada de SCCS [7] pero utiliza un formato de archivo de historial que es incompatible con SCCS. El formato de archivo SCCS utiliza una técnica de almacenamiento llamada deltas intercalados (o el tejido [8] ). Esta técnica de almacenamiento ahora es considerada por muchos desarrolladores de sistemas de control de versiones como fundamental para las técnicas avanzadas de fusión y control de versiones, [9] como la fusión "Precise Codeville" ("pcdv").
Aparte de corregir los problemas del año 2000 en 1999, no se ha llevado a cabo ningún desarrollo activo en las distintas versiones de SCCS específicas de los proveedores de UNIX. [10] En 2006, Sun Microsystems (hoy parte de Oracle ) lanzó su versión Solaris de SCCS como código abierto bajo la licencia CDDL como parte de sus esfuerzos por abrir el código fuente de Solaris. [11]
El sistema de control de código fuente (SCCS) es un sistema para controlar los cambios en los archivos y en el historial. El software se actualiza normalmente a una nueva versión corrigiendo errores, optimizando algoritmos y añadiendo funciones adicionales. [12] Los cambios en el software provocan problemas que requieren un control de versiones para resolverlos. [1]
SCCS fue creado para resolver estos problemas. SCCS de AT&T tenía cinco versiones principales para el sistema operativo IBM y cinco versiones principales para UNIX [13]. Dos implementaciones específicas que utilizan SCCS son: PDP 11 bajo Unix e IBM 370 bajo el sistema operativo. [1]
SCCS consta de dos partes: comandos SCCS y archivos SCCS. [14] Todas las operaciones básicas (por ejemplo, crear, eliminar, editar) se pueden realizar mediante comandos SCCS. [14] Los archivos SCCS tienen un prefijo de formato único s.
, que se controla mediante comandos SCCS. [2]
Un archivo SCCS consta de tres partes: [15]
En SCCS, un delta es una única revisión en un archivo SCCS. Los deltas se almacenan en una tabla delta, por lo que cada archivo SCCS tiene su propio registro de cambios. [15]
Cada operación de cada archivo SCCS se rastrea mediante indicadores. Sus funciones son las siguientes: [15]
SCCS utiliza tres tipos de registros de control para realizar un seguimiento de las inserciones y eliminaciones aplicadas en diferentes deltas. Son el registro de control de inserción, el registro de control de eliminación y el registro de control de finalización. Siempre que un usuario cambia alguna parte del texto, se inserta un registro de control alrededor del cambio. Los registros de control se almacenan en el cuerpo junto con los registros de texto originales. [1]
SCCS proporciona un conjunto de comandos en forma de invocaciones de macro que realizan o inician funciones de gestión de código fuente con una sintaxis simple, como crear, obtener, editar, prt. [16] [17] También proporciona acceso al historial de revisión de los archivos bajo gestión. Estos comandos se implementan como verbos de argumento para el programa controlador sccs .
El comando sccs create utiliza el texto de un archivo de origen para crear un nuevo archivo de historial. Por ejemplo:
$ sccs create program.c program.c: 1.1 87 líneas
Las salidas son nombre, versión y líneas.
El comando es una macro que se expande a admin para crear el nuevo archivo de historial seguido de get para recuperar el archivo.
$ sccs edit program.c 1.1 new delta 1.2 87 líneas
Editar un archivo específico.
El comando es una macro que se expande para obtener -e .
$ sccs delget program.c comentarios? función principal mejorada 1.2 10 insertada 0 eliminada 87 sin cambios 1.2 97 líneas
Verifique la nueva versión y obtenga la nueva versión de sccs.
El comando es una macro que se expande a delta para registrar el archivo de la nueva versión seguido de get para recuperar el archivo.
$ sccs get program.c 1.1 87 líneas
Las salidas son la versión y las líneas que desea obtener de un archivo específico.
$ sccs prt programa.c
Este comando produce un informe de los cambios en el código fuente.
La mayoría de las versiones de UNIX incluyen una versión de SCCS, que, sin embargo, a menudo ya no se desarrolla activamente. [18] [ se necesita una mejor fuente ]
El difunto Jörg Schilling (que solicitó la liberación de SCCS en los primeros días del proyecto OpenSolaris ) [19] mantuvo una bifurcación de SCCS [20] [21] que se basa en el código fuente de OpenSolaris. Ha recibido importantes mejoras de funciones, pero sigue siendo compatible con las versiones originales de SCCS a menos que se utilice el modo "nuevo proyecto". [22]
El Proyecto Heirloom incluye una versión de SCCS derivada del código fuente de OpenSolaris [23] y mantenida entre diciembre de 2006 y abril de 2007. [24]
GNU ofrece el programa compatible con SCCS GNU CSSC ("Compatibly Stupid Source Control"), que se utiliza ocasionalmente para convertir archivos SCCS a sistemas más nuevos como CVS o Subversion ; [25] no es una implementación completa [26] de SCCS y no se recomienda su uso en proyectos nuevos, pero está destinado principalmente a la conversión a un sistema de control de versiones moderno.
Desde la década de 1990, se han desarrollado y popularizado muchos nuevos sistemas de control de versiones diseñados para gestionar proyectos con una gran cantidad de archivos y que ofrecen funcionalidades avanzadas como operación multiusuario, control de acceso, compilación automática, soporte de red, gestión de versiones y control de versiones distribuido . Bitkeeper y TeamWare utilizan el formato de archivo SCCS internamente y pueden considerarse sucesores de SCCS. [27] [28]
En los sistemas BSD, el SCCSID se reemplaza por un RCSID que comienza y termina con $ ; la herramienta correspondiente es ident . [29] Este sistema lo usaba originalmente RCS y se agregaba automáticamente al finalizar la compra. Los identificadores de control de revisión de código fuente resultantes están documentados en las guías de estilo de NetBSD [30] y FreeBSD [31] para sus propias bases de código. NetBSD define la palabra clave personalizada $NetBSD: ...$ mientras que FreeBSD define $FreeBSD: ...$ y una macro renombrada __FBSDID .
El sistema de control de versiones SRC también puede utilizar internamente el formato de archivo SCCS (o RCS ) y tiene como objetivo proporcionar una mejor interfaz de usuario para SCCS mientras sigue administrando solo proyectos de un solo archivo. [32]
Un grupo de voluntarios se ha hecho cargo del desarrollo y desea que el proyecto siga vivo y en buen estado