Gleichzeitiges Versionssystem

Concurrent Versions System (CVS), auch bekannt als das Gleichzeitige Versioning System, sind ein Client/Server-Revisionsregelsystem der kostenlosen Software im Feld der Softwareentwicklung. Versionsregelsystem-Software geht die ganze Arbeit und alle Änderungen in einer Reihe von Dateien nach, und erlaubt mehreren Entwicklern (potenziell weit getrennt im Raum und/oder Zeit) zusammenzuarbeiten. Dick Grune hat CVS als eine Reihe von Schale-Schriften im Juli 1986 entwickelt. Es gab ein ähnliches System verfügbar früher Mitte - die von John Humbert entwickelten 70er Jahre.

Zusätzlich zu kommerziellen Softwareentwicklern ist CVS populär bei der offenen Quellsoftwarewelt geworden und wird laut der GNU-Lizenz der Breiten Öffentlichkeit veröffentlicht.

Eigenschaften

CVS verwendet eine Client/Server-Architektur: Ein Server versorgt die jetzige Version (En) eines Projektes und seiner Geschichte, und Kunden stehen zum Server in Verbindung, um eine ganze Kopie des Projektes, der Arbeit an dieser Kopie und dann späterem "Check-In" ihrer Änderungen "zu überprüfen". Gewöhnlich stehen der Kunde und Server über einen LAN oder über das Internet in Verbindung, aber Kunde und Server können beide auf derselben Maschine laufen, wenn CVS die Aufgabe des Nachgehens der Versionsgeschichte eines Projektes mit nur lokalen Entwicklern hat. Die Server-Software läuft normalerweise auf Unix (obwohl mindestens der CVSNT Server auch verschiedene Geschmäcke nach Windows von Microsoft unterstützt), während CVS Kunden auf jeder Hauptbetriebssystem-Plattform laufen können.

Mehrere Entwickler können an demselben Projekt gleichzeitig, jedes Redigieren Dateien innerhalb ihrer eigenen "Arbeitskopie" des Projektes und Sendens (oder Gepäckaufgabe) ihre Modifizierungen zum Server arbeiten. Um die Möglichkeit von Leuten zu vermeiden, die auf jedem die Zehen der anderen gehen, akzeptiert der Server nur mit der neusten Version einer Datei vorgenommene Änderungen. Wie man deshalb erwartet, halten Entwickler ihre Arbeitskopie aktuell, indem sie die Änderungen anderer Leute regelmäßig vereinigen. Diese Aufgabe wird größtenteils automatisch vom CVS Kunden behandelt, manuelles Eingreifen nur verlangend, wenn ein editieren Konflikt zwischen einem eingecheckten Modifizierung und der noch ungehemmten lokalen Version einer Datei entsteht.

Wenn das Check-In der Operation erfolgreich ist, dann erhöhen die Versionsnummern aller Dateien beteiligt automatisch, und der CVS-Server schreibt eine benutzergelieferte Beschreibungslinie, das Datum und den Namen des Autors zu seinen Protokolldateien. CVS kann auch laufen äußerliche, benutzerangegebene Klotz-Verarbeitungsschriften im Anschluss an jeden begehen. Diese Schriften werden durch einen Zugang in der Datei von CVS installiert, die E-Mail-Ankündigung auslösen oder die Klotz-Daten in ein Webbasiertes Format umwandeln kann.

Kunden können auch Versionen vergleichen, um eine ganze Geschichte von Änderungen bitten, oder einen historischen Schnellschuss des Projektes bezüglich eines gegebenen Datums oder bezüglich einer Revisionszahl überprüfen.

Anonymer CVS

Viele Projekte der offenen Quelle erlauben "anonymen gelesenen Zugang", eine von OpenBSD den Weg gebahnte Eigenschaft. Das bedeutet, dass Kunden überprüfen und Versionen entweder mit einem leeren oder mit einfachen veröffentlichten Kennwort (z.B, "anoncvs") vergleichen können; nur das Check-In von Änderungen verlangt eine persönliche Rechnung und Kennwort in diesen Drehbüchern.

Kunden können auch den "Aktualisierungs"-Befehl verwenden, ihre lokalen Kopien zu bringen, die mit der neuesten Version auf dem Server aktuell sind. Das beseitigt das Bedürfnis nach dem wiederholten Herunterladen des ganzen Projektes.

CVS kann auch verschiedene "Zweige" eines Projektes aufrechterhalten. Zum Beispiel kann eine veröffentlichte Version des Softwareprojektes einen Zweig bilden, der für üble Programmfehler-Lagen verwendet ist, während eine Version unter der aktuellen Entwicklung, mit Hauptänderungen und neuen Eigenschaften, einen getrennten Zweig bilden kann.

CVS verwendet Delta-Kompression für die effiziente Lagerung von verschiedenen Versionen derselben Datei. Die Durchführung bevorzugt Dateien mit vielen Linien (gewöhnlich Textdateien) - in äußersten Fällen das System kann individuelle Kopien jeder Version aber nicht Deltas versorgen.

Fachsprache

CVS etikettiert ein einzelnes Projekt (Satz von zusammenhängenden Dateien), dass es sich als ein Modul behilft. Ein CVS Server versorgt die Module, die er in seinem Behältnis führt. Programmierer erwerben Kopien von Modulen, indem sie überprüfen. Die überprüften Dateien dienen als eine Arbeitskopie, Sandkasten oder Arbeitsraum. Änderungen zur Arbeitskopie werden im Behältnis durch die Begehung von ihnen widerspiegelt. Zu aktualisieren soll erwerben oder die Änderungen im Behältnis mit der Arbeitskopie verschmelzen.

Geschichte und Status

CVS hat sich von einem früheren Versioning-System genannt Revision Control System (RCS) entwickelt (im Gebrauch), der individuelle Dateien, aber nicht ganze Projekte führt. Dick Grune stellt einige kurze historische Zeichen über CVS auf seiner Seite zur Verfügung. Zu zitieren:

Grune hat öffentlich den Code zu mod.sources am 23. Juni 1986 veröffentlicht: Google Groups setzt fort, den ursprünglichen Usenet-Posten zu archivieren und ihm zu dienen.

Der Code, der sich schließlich zur jetzigen Version von CVS entwickelt hat, hat mit Brian Berliner im April 1989, mit dem späteren Eingang von Jeff Polk und vielen anderen Mitwirkenden angefangen. Brian Berliner hat eine Zeitung geschrieben, die seine Verbesserungen zum CVS Programm einführt —, der beschreibt, wie das Werkzeug erweitert und innerlich von Prisma, ein Drittentwickler verwendet wurde, der am Kern von SunOS arbeitet, und zu Gunsten der Gemeinschaft unter dem GPL veröffentlicht wurde. Am 19. November 1990 wurde CVS Version 1.0 der Organisation zur Förderung freier Software für die Entwicklung und den Vertrieb vorgelegt.

CVS hat die Durchführung des Ausbreitens in Versionsregelsysteme eingeführt: Die sich verzweigenden Techniken in anderen Systemen sind alle auf die CVS Durchführung, wie dokumentiert, 1990 zurückzuführen. Während RCS wirklich das Konzept von Zweigen vereinigt hat - waren sie für individuelle Dateien nur.

CVS hat immer verteilt, Mehrseite und Off-Lineoperationen wegen der Unzuverlässigkeit der wenigen Computernetze fest unterstützt, die zurzeit entwickelter CVS bestanden haben.

Die aktive Entwicklung von CVS geht mit neuen Ausgaben weiter, die direkt Bitten um neue Eigenschaften entsprechen, oder Programmfehler-Berichte, der letzten Version haben Mai 2008 und nur etwas Wartung bugfixes seitdem im eigenen CVS Behältnis des CVS Projektes veröffentlicht. Das weist darauf hin, dass das Produkt reif ist.

Die Entwicklung des Windows-Hafens von Microsoft von CVS hat sich in ein getrenntes Projekt genannt CVSNT abgespaltet und ist im Verlängern der Merkmalsreihe des Systems aktiver gewesen, sogar die Änderungen zurück zur UNIX-Plattform tragend.

Beziehung mit dem GNU

Historisch konnte die Beziehung zwischen CVS und dem GNU-Projekt etwas zweideutig scheinen: Die GNU-Website hat das Programm verteilt, es "GNU-Paket" auf einer Seite und "anderes GPL-lizenziertes Projekt" über einen anderen etikettierend. Erläuterung ist gekommen, als sich CVS Entwicklung von cvshome.org bis savannah.nongnu.org mit der Nichtgnu-Kategorie offiziell zugeteiltem CVS bewegt hat. Auf der FTP Seite hat das Programm im Verzeichnis traditionell gewohnt und tut noch.

Nachfolger

Mit der Zeit haben Entwickler neue auf CVS gestützte Versionsregelsysteme geschaffen, um Eigenschaften hinzuzufügen, das betriebliche Modell zu verändern, und die Produktivität von Entwicklern zu verbessern. Das ist oft genug vorgekommen, um zum Ausdruck YACC zu führen: "Und doch ein Anderer CVS-Klon" (ein Spiel auf dem genannten Befehl von Unix, der "noch für einen anderen Bearbeiter-Bearbeiter" eintritt). CVS Ersatzprojekte schließen CVSNT (zuerst veröffentlichter 1998), Umsturz (am Anfang veröffentlicht 2004), EVS (zuerst veröffentlichter 2008), OpenCVS (nicht veröffentlicht bezüglich am 11. April 2011), und zahlreiche Systeme ein, die verteilte Revisionskontrolle unterstützen.

Kritik

Mehrere Eigenschaften von CVS sind oft kritisiert worden. Verteidiger behaupten, dass viele von diesen das Ergebnis von absichtlichen Designentscheidungen sind, von denen einige gemacht wurden, als die Software und Hardware-Landschaft verschieden waren als, sind sie jetzt. Sie weisen auch zur Existenz von workarounds oder den Annäherungen an den Entwicklungsprozess hin, der Probleme lindern kann.

Siehe auch

  • OpenCVS, BSD-lizenzierte Durchführung von CVS, der als ein Teil des Projektes von OpenBSD entwickelt wird.
  • StatCVS, ein Programm, das grafische Berichte über CVS Behältnisse erzeugt.
  • TortoiseCVS, ein Schale-einheitlicher CVSNT Kunde für Windows von Microsoft (allgemein verwendet mit CVS Servern)
  • Bonsai CVS codiert Verwaltungssystem, ein Werkzeug, um über Dateien, Verzeichnisse und Zweige unter dem CVS Management zu berichten.
  • Cervisia, ein KDE GUI frontend für CVS
  • ViewVC, eine Browser-Schnittstelle für CVS Behältnisse
  • OpenGrok, eine Browser-Schnittstelle für CVS Behältnisse
  • CodeBeamer (Software), eine Zusammenarbeitende Anwendungslebenszyklus-Verwaltungslösung mit der eingebauten CVS-Unterstützung.

IDEN mit der Unterstützung für CVS

  • Anjuta
  • Wasser-Datenstudio
  • Schwung
  • Steck-: Menü für CVS-Versioncontrol
  • Emacs
  • Dev-C ++
  • Eklipse
  • Aptana
  • Zend Studio
  • NetBeans
  • IDEE von IntelliJ
  • PhpStorm/WebStorm
  • wxDev-C ++
  • KDevelop
  • Komodo IDE
  • Xcode
  • PHPEdit
  • JDeveloper
  • Orakel SQL Entwickler
  • SlickEdit
  • Flügel IDE Fachmann
  • Qt Schöpfer
  • Sehstudio

Links


Eule / CVS
Impressum & Datenschutz