Revisionskontrollsystem - Revision Control System

Revisionskontrollsystem
Originalautor(en) Walter F. Tichy
Entwickler GNU-Projekt
Erstveröffentlichung 1982 ; Vor 39 Jahren ( 1982 )
Stabile Version
5.10.0 / 20. Oktober 2020 ; vor 11 Monaten ( 20. Oktober 2020 )
Repository
Geschrieben in C
Betriebssystem Unix-ähnlich , V
Typ Versionskontrolle
Lizenz GPL-3.0 oder höher
Webseite www .gnu .org / Software / rcs /

Das Revision Control System (RCS) ist eine frühe Implementierung eines Versionskontrollsystems (VCS). Es handelt sich um eine Reihe von UNIX- Befehlen, die es mehreren Benutzern ermöglichen, Programmcode oder Dokumente zu entwickeln und zu verwalten. Mit RCS können Benutzer ihre eigenen Überarbeitungen eines Dokuments vornehmen, Änderungen festschreiben und diese zusammenführen. RCS wurde ursprünglich für Programme entwickelt, eignet sich aber auch für Textdokumente oder Konfigurationsdateien, die häufig überarbeitet werden.

Geschichte

Entwicklung

RCS wurde erstmals 1982 von Walter F. Tichy an der Purdue University veröffentlicht . Es war ein alternatives Werkzeug zum damals beliebten Source Code Control System (SCCS), das fast das erste Software-Tool zur Versionsverwaltung war (das 1972 von frühen Unix-Entwicklern entwickelt wurde). RCS wird derzeit vom GNU-Projekt gepflegt .

Eine Innovation in RCS ist die Einführung von umgekehrten Deltas . Anstatt jede Revision in einer Datei zu speichern, wie es SCCS mit verschachtelten Deltas tut , speichert RCS eine Reihe von Bearbeitungsanweisungen, um zu einer früheren Version der Datei zurückzukehren. Tichy behauptet, dass es in den meisten Fällen schneller ist, weil die jüngsten Revisionen häufiger verwendet werden.

Recht und Lizenzierung

Anfangs (bis Version 3, die in 4.3BSD verteilt wurde) verbot seine Lizenz die Weiterverteilung ohne schriftliche Genehmigung von Walter Tichy:

Copyright (C) 1982 by Walter F. Tichy [...] Alle Rechte vorbehalten. Kein Teil dieser Software darf ohne vorherige schriftliche Genehmigung des Autors in irgendeiner Form oder auf irgendeine Weise verkauft oder verbreitet werden.

Eine READ_ME- Datei begleitete einige Versionen von RCS, die die Verbreitung weiter einschränkten, zB in 4.3BSD-Reno .

Ca. 1989 wurde die RCS-Lizenz in etwas Ähnliches wie die zeitgenössischen BSD-Lizenzen geändert , wie aus Kommentaren im Quellcode hervorgeht.

Die Weiterverteilung und Verwendung in Quell- und Binärform ist zulässig, vorausgesetzt, dass der obige Urheberrechtshinweis und dieser Absatz in allen diesen Formen dupliziert werden und dass alle Dokumentationen, Werbematerialien und anderen Materialien im Zusammenhang mit einer solchen Verteilung und Verwendung bestätigen, dass die Software von Walter . entwickelt wurde Tichy.

RCS 4.3, veröffentlicht am 26. Juli 1990, wurde "unter Lizenz der Free Software Foundation " unter den Bedingungen der GPL vertrieben .

Verhalten

Arbeitsweise

RCS arbeitet nur mit einzelnen Dateien. Es hat keine Möglichkeit, mit einem gesamten Projekt zu arbeiten, daher unterstützt es keine atomaren Commits, die mehrere Dateien betreffen. Obwohl es Verzweigungen für einzelne Dateien ermöglicht, ist die Versionssyntax umständlich. Stattdessen Zweige verwenden, verwenden viele Teams nur die eingebaute in auf einem einzigen Mechanismus und Arbeit Verriegelungskopf Zweig.

Verwendungszweck

RCS dreht sich um die Verwendung von "Revisionsgruppen" oder Gruppen von Dateien, die über die Befehle co(checkout) und ci(check-in) eingecheckt wurden . Standardmäßig wird eine eingecheckte Datei entfernt und durch eine ",v"-Datei ersetzt (so wird foo.rb beim Einchecken zu foo.rb,v), die dann von jedem mit Zugriff auf die Revisionsgruppe ausgecheckt werden kann. RCS-Dateien (wiederum Dateien mit der Erweiterung ",v") spiegeln die Hauptdatei mit zusätzlichen Metadaten in den ersten Zeilen wider. Nach dem Einchecken speichert RCS Revisionen in einer Baumstruktur, die verfolgt werden kann, sodass ein Benutzer eine Datei bei Bedarf in eine frühere Form zurücksetzen kann.

Vorteile

  • Einfache Struktur und einfach zu verarbeiten
  • Das Speichern von Revisionen ist nicht von einem zentralen Repository abhängig

Nachteile

  • Es gibt wenig Sicherheit in dem Sinne, dass die Versionshistorie von den Benutzern bearbeitet werden kann.
  • An einer Datei kann jeweils nur ein Benutzer arbeiten.

Verwandte Tools und Nachfolger

RCS - ein Werkzeug der ersten Generation

RCS wird immer noch in einigen Projekten verwendet, aber seine fortgesetzte Verwendung ist bei weitem nicht der von moderneren Tools wie Git .

SCCS (veröffentlicht 1972) und DSEE (als Vorgänger von Atria ClearCase betrachtet ) sind zwei weitere relativ bekannte bahnbrechende VCS-Softwaretools. Diese Tools werden im Allgemeinen als automatisierte Softwaretools der ersten Generation von VCS angesehen.

Zweite Generation

Nach dem VCS der ersten Generation könnten Tools wie CVS und Subversion , die über ein lokal zentralisiertes Repository verfügen, als VCS der zweiten Generation angesehen werden. Insbesondere wurde CVS (Concurrent Versions System) auf der RCS-Struktur entwickelt, um die Skalierbarkeit des Tools für größere Gruppen zu verbessern, und später PRCS als einfacheres CVS-ähnliches Tool verzweigt .

Etwa 2006 galt Subversion als das beliebteste und am weitesten verbreitete VCS-Tool dieser Generation und füllte wichtige Schwachstellen von CVS. Später wurde SVK mit dem Ziel der Remote-Beitragsfunktion entwickelt, aber die Grundlage seines Designs war seinen Vorgängern ziemlich ähnlich.

Dritte Generation

Mit der Verbesserung der Internetkonnektivität und der Verbreitung geografisch verteilter Softwareentwicklung entstanden Tools, die nicht auf ein gemeinsames zentrales Projekt-Repository angewiesen waren. Diese ermöglichen es Benutzern, unabhängige Repositorys (oder Forks ) eines Projekts zu verwalten und Revisionen über Changesets zu kommunizieren . BitKeeper , Git , Monotone , darcs , Mercurial und bzr sind einige Beispiele für Versionskontrollsysteme der dritten Generation.

Anmerkungen

Verweise

Anmerkungen

Weiterlesen

Externe Links