Revisionskontrollsystem
Originalautor (en) | Walter F. Tichy |
---|---|
Entwickler (en) | GNU -Projekt |
Erstveröffentlichung | 1982 |
Stabile Version | 5.10.1[1]/ 2. Februar 2022 |
Repository | |
Geschrieben in | C |
Betriebssystem | Unix-artig, V[2] |
Typ | Versionskontrolle |
Lizenz | GPL-3.0-oder-Later[a][3] |
Webseite | www |
Revisionskontrollsystem (RCS) ist eine frühzeitige Umsetzung von a Versionskontrollsystem (VCS). Es ist ein Satz von Unix Befehle, mit denen mehrere Benutzer den Programmcode oder die Dokumente entwickeln und verwalten können. Mit RCS können Benutzer ihre eigenen Überarbeitungen eines Dokuments vornehmen, Änderungen begehen und sie zusammenführen. RCS wurde ursprünglich für Programme entwickelt, ist aber auch für Textdokumente oder Konfigurationsdateien nützlich, die häufig überarbeitet werden.[4]
Geschichte
Entwicklung
RCS wurde erstmals 1982 veröffentlicht[4] durch Walter F. Tichy bei Purdue Universität. Es war ein alternatives Werkzeug zum damals beliebten Quellcode -Steuerungssystem (SCCS), das fast das erste Versionskontrollsoftware -Tool (1972 von frühen Unix -Entwicklern entwickelt wurde).[5] RCS wird derzeit von der aufrechterhalten GNU -Projekt.[6]
Eine Innovation in RCS ist die Einführung von Umgekehrte Deltas. Anstatt jede Revision in einer Datei wie SCCS zu speichern Verengte Deltas, RCS speichert 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, da die jüngsten Überarbeitungen häufiger verwendet werden.[4]
Recht und Lizenzierung
Zunächst verboten seine Lizenz die Umverteilung ohne schriftliche Genehmigung von Walter Tichy (bis Version 3, die in 4.3bsd verteilt wurde):[7]
Copyright (c) 1982 von 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 verteilt werden.
A LIESMICH Die Datei begleitete einige Versionen von RCs, die die Verteilung weiter eingeschränkt haben, z. B. in 4.3bsd-reno.[8]
Ca. 1989 wurde die RCS -Lizenz in etwas Ähnliches wie das Zeitgenosse geändert BSD -Lizenzen, wie durch Kommentare im Quellcode ersichtlich.[9]
Umverteilung und Verwendung in Quellen- und Binärformularen sind zulässig, sofern die oben genannte Urheberrechtsbekanntmachung und dieser Absatz in all diesen Formen dupliziert werden und dass alle Dokumentationen, Werbematerialien und andere Materialien im Zusammenhang mit einer solchen Verteilung und Verwendung bestätigen, dass die von Walter entwickelte Software entwickelt wurde Tichy.
RCS 4.3, veröffentlicht am 26. Juli 1990, wurde "unter Lizenz von der verteilt Kostenlose Software -Stiftung", unter den Bedingungen der Gpl.[10][Vollständiges Zitat benötigt]
Verhalten
Arbeitsweise
RCS arbeitet nur auf einzelnen Dateien. Es hat keine Möglichkeit, mit einem ganzen Projekt zu arbeiten, daher unterstützt es nicht Atomic Commits mehrere Dateien beeinflussen. Obwohl es Verzweigungen für einzelne Dateien bietet, ist die Versionssyntax umständlich. Anstatt Zweige zu verwenden, verwenden viele Teams nur den integrierten Verriegelungsmechanismus und arbeiten an einem einzigen Kopf Zweig.[4]
Verwendungszweck
RCS dreht sich um die Verwendung von "Revisionsgruppen" oder Sätze von Dateien, die über die überprüft wurden CO
(Checkout) und CI
(Check-in) Befehle. Standardmäßig wird eine überprüfte Datei entfernt und durch eine ", v" -Datei (also foo.rb) ersetzt, wenn eingecheckt wird, wird foo.rb, v), der dann von jedem überprüft werden kann, der Zugriff auf die Revisionsgruppe hat. RCS -Dateien (erneut 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 befolgt werden kann, damit ein Benutzer bei Bedarf eine Datei in ein früheres Formular zurückversetzt kann.[4]
Vorteile
- Einfache Struktur und leicht zu arbeiten [11]
- Die Revisionseinsparung hängt nicht von einem zentralen Repository ab [11]
Nachteile
- Es gibt wenig Sicherheit, in dem Sinne, dass der Versionsverlauf von den Benutzern bearbeitet werden kann.[11]
- Nur ein Benutzer kann jeweils in einer Datei arbeiten.[12]
Verwandte Tools und Nachfolger
Erste Generation
SCCS (erstmals 1973 veröffentlicht) und DSEE (als Vorgänger von als Vorgänger von Atria Clearcase) beschrieben 1984.[13] sind zwei weitere bemerkenswerte VCS -Softwaretools. Diese Tools gelten im Allgemeinen als die erste Generation von VCs als automatisierte Softwaretools.[Nach wem?]
Zweite Generation
Nach der ersten Generation VCS, Tools wie z. Lebenslauf und Subversion, die ein lokal zentralisiertes Repository aufweisen, könnte als VCS der zweiten Generation betrachtet werden. Insbesondere wurde CVS (Concurrent Version System) neben der RCS -Struktur entwickelt, wodurch die Skalierbarkeit des Werkzeugs für größere Gruppen und später PRCs verbessert wurde.[14] Ein einfacheres CVS-ähnliches Tool, das auch RCS-ähnliche Dateien verwendet, die Delta-Komprimierung jedoch durch Verwendung verbessert Xdelta stattdessen.
Bis 2006 wurde die Subversion als das beliebteste und am häufigsten verwendete VCS -Tool aus dieser Generation angesehen und wichtige Schwächen von Lebensläufen gefüllt.[Nach wem?] Später entwickelte sich SVK mit dem Ziel der Remote -Beitragsfunktion, aber immer noch die Grundlage seines Designs ähnelte seinen Vorgängern.[5]
Dritte Generation
Als sich die Internetkonnektivität verbesserte und die geografisch verteilte Softwareentwicklung häufiger wurde, entstanden Tools, die sich nicht auf ein gemeinsames zentrales Projekt -Repository stützten. Diese ermöglichen es Benutzern, unabhängige Repositories zu pflegen (oder Gabeln) eines Projekts und kommunizieren Überarbeitungen über Änderungen.Bitkeeper, Git, Monoton, Darcs, Quecksilber, und bzr sind einige Beispiele für Versionskontrollsysteme der dritten Generation.[5]
Anmerkungen
- ^ GPL-3.0-or-Later seit 2010-06-24.
Verweise
- ^ Thien-Thi Nguyen (2. Februar 2022). "GNU RCS 5.10.1 verfügbar". Abgerufen 3. Februar 2022.
- ^ V-System 6.0 Referenzhandbuch
- ^ "Lizenz für GPLV3+aktualisieren". 24. Juni 2010.
- ^ a b c d e Tichy, Walter (1982). "Design, Implementierung und Bewertung eines Revisionskontrollsystems". ICSE '82 Proceedings der 6. Internationalen Konferenz für Software -Engineering: 58–67. Abgerufen 12. Juni 2012.
- ^ a b c Raymond, Eric. "Verständnis der Versionskontrollsysteme (Entwurf)". www.catb.org. Abgerufen 13. Februar 2017.
- ^ "RCS". GNU -Projekt. Kostenlose Software -Stiftung. 22. Januar 2015. Abgerufen 27. Juni 2015.
- ^ "4.3bsd - /usr/src/new/rcs/src/rcsdiff.c". Walters Retro Computing Corner -Dokumentation. 19. Mai 1986. Abgerufen 15. November 2014.
- ^ "CSRG/CD2/4.3RENO/usr/src/worfen/rcs/src/read_me". 27. Februar 1989.
- ^ "CSRG/CD2/4.3RENO/usr/src/worfen/rcs/src/rcs.c". 15. August 1989.
- ^ RCS 4.3 Readme -Datei.
- ^ a b c "Revisionskontrollkonzepte - Revisionskontrollsystem (RCS), Concurrent Version System (CVS) und Subversion". Es Leidenschaft - "es professioneller Blog". 10. Dezember 2008. Abgerufen 20. Februar 2017.
- ^ Steinberg, Frank. "Revisionskontrollsysteme (RCS, CVS, Subversion, Git)". Technische Universität Braunschweig. Abgerufen 20. Februar 2017.
- ^ Leblang, David B.; Chase, Robert P. (Mai 1984). "Computergestützte Software-Engineering in einer verteilten Workstation-Umgebung". ACM Sigplan nennt. 19 (5): 104–112. doi:10.1145/390011.808255.
- ^ MacDonald, Joshua P (9. Mai 2004). "PRCS, das Projektrevisionskontrollsystem". Abgerufen 29. Oktober 2021.
Anmerkungen
- Walter F. Tichy: RCS-ein System zur Versionskontrolle. Im: Software: Übung und Erfahrung. Juli 1985. Band 15. Nummer 7. Seiten 637–654. Verweise auf das Papier in Citeseer Alternative Link zum Papier
Weitere Lektüre
- Don Bolinger, Tan Bronson, Anwendung von RCs und SCCs - von der Quellvertretung bis zur Projektsteuerung. O'Reilly, 1995.
- Walter F. Tichy, RCS - ein System zur Versionskontrolle, 1985
- Paul Heinlein, RCS Howto, 2004
Externe Links
- Offizielle Website
- Original RCS bei Purdue
- OpenBSD Allgemeine Befehle Handbuch : RCS -Dateimanagementprogramm -