Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist SVN?

Was ist SVN?

藏色散人
藏色散人Original
2018-12-24 11:24:258480Durchsuche

Was ist SVN?

Was ist SVN (Subversion)?

Vor 2010 war Apache Subversion (kurz SVN) eines der beliebtesten Versionskontrollsysteme. Heutzutage nimmt die Popularität von SVN ab, aber es werden immer noch Millionen von Zeilen gespeichert. Es wird sogar weiterhin aktiv gepflegt, wenn auch von einer kleinen Open-Source-Community.

Die Geburt von SVN

In den späten 1990er Jahren wurde das Concurrent Versions System (oder CVS) häufig für die Softwareentwicklung sowohl in Open-Source- als auch in kommerziellen Projekten verwendet. Allerdings begann CVS Kritik zu ernten. Die Unterstützung für Tools von Drittanbietern ist schlecht und die Protokolle http/https/ssh werden überhaupt nicht unterstützt. Es wurde schnell minderwertig und ein besseres System wurde benötigt.

Im Jahr 2000 begann die Entwicklung von SVN ernsthaft. Ziel ist es, einen kompatiblen Nachfolger für CVS zu schaffen.

Obwohl die SVN-Entwicklung im Jahr 2000 begann, wurde Version 1.0 erst im Februar 2004 veröffentlicht. Es ahmt viele Funktionen von CVS nach, führt aber auch neue Funktionen ein, die in CVS fehlen. Benutzer können jetzt atomare Befehle ausführen und versionierte Dateien umbenennen und verschieben.

SVN wurde im November 2009 zu einem Apache-Projekt, als es in den Apache Incubator aufgenommen wurde. Nachdem SVN der Welt vorgestellt wurde, ließ die Akzeptanz von CVS allmählich nach.

Empfohlene verwandte Artikel:
1.Was ist der Unterschied zwischen Git und Svn
2.So installieren Sie das SVN-Tool
Ähnliche Videoempfehlungen
:
1.SVN-Video-Tutorial (Chuanzhi Podcast)

Wie funktioniert Subversion?

SVN wurde ursprünglich als Befehlszeilenschnittstelle konzipiert. Das bedeutet, dass Sie ein Terminal öffnen und Textbefehle eingeben.

Damit Subversion funktioniert, erfordert ein SVN-Setup zwei Hauptelemente:

1. Den Server, der alle Versionen aller Quelldateien enthält

2 Die Dateien befinden sich auf Ihrem Computer.

Die Dateien auf Ihrem Computer werden Arbeitsdateien genannt. Dies sind die Dateien, die jeder Benutzer bearbeitet. Anschließend übermitteln Benutzer ihre Änderungen an den SVN-Server, der auch als Repository bezeichnet wird.

Jedes Mal, wenn ein Benutzer eine Änderung vornimmt, verwaltet und zeichnet SVN diese auf, indem es eine neue Version erstellt. Wie bei den meisten Versionskontrollsystemen verwenden Benutzer normalerweise die neueste Version. Sie können jedoch zu einer früheren Version zurückkehren, wenn Sie eine ältere Version benötigen.

Was ist ein SVN-Server? (Was ist ein Subversion-Server?)

Der SVN-Server enthält alle Quelldateien sowie alle Versionen der Dateien. In der SVN-Welt werden Server als Repositorys bezeichnet. SVN-Server und SVN-Repository sind also dasselbe. Die lokale Kopie der

-Datei (auf Ihrem Computer gespeichert) wird als Arbeitskopie bezeichnet.

Ist SVN verteilt oder zentralisiert?

Versionskontrollsysteme können grob in zwei Kategorien unterteilt werden: Distributed Version Control System (DVCS) und Centralized Version Control System (CVCS) .

SVN ist ein zentralisiertes Versionskontrollsystem.

Ein zentralisiertes Versionskontrollsystem bedeutet, dass der Versionsverlauf auf einem zentralen Server gespeichert wird. Wenn Entwickler Änderungen an bestimmten Dateien vornehmen möchten, ziehen sie die Dateien aus diesem zentralen Repository auf ihre Computer. Nachdem Entwickler Änderungen vorgenommen haben, senden sie die geänderten Dateien zurück an das zentrale Repository.

Skalierbares zentralisiertes Versionskontrollsystem mit Helix Core. Oder verwenden Sie Helix4Git für Git-basierte verteilte Workflows.

Herausforderungen für SVN

SVN hat ein umständliches Verzweigungsmodell

Die häufigste Beschwerde über SVN ist sein umständliches Verzweigungsmodell. Mit Zweigen können Sie gleichzeitig an mehreren Versionen Ihres Codes arbeiten. In SVN werden Zweige als Verzeichnisse im Repository erstellt. Vielen Entwicklern gefällt diese Verzeichnisstruktur nicht. Aber die Herausforderungen hören hier nicht auf.

SVN Version 1.6 führte ein Konzept namens Baumkonflikt ein. Baumkonflikte sind Konflikte, die durch Änderungen in der Verzeichnisstruktur verursacht werden und häufig auftreten. Dies erhöht die Komplexität der Implementierung von Verzweigungsstrategien in SVN, da SVN es nicht zulässt, Änderungen zu übernehmen, wenn ein Baumkonflikt auftritt.

SVN erfordert, dass Sie eine Verbindung zum zentralen Repository herstellen

Um Änderungen zu übernehmen, erfordert SVN, dass Sie eine Verbindung zum zentralen Repository herstellen.

Die Verwendung von SVN ohne Verbindung zu einem zentralen Repo ist sinnlos. Wenn Sie beispielsweise offline programmieren – zum Beispiel während eines Fluges – lässt SVN Sie nicht zum zentralen Repository übergehen, bis die Verbindung wiederhergestellt ist.

SVN erfordert, dass Sie Konflikte manuell lösen

Zusammenführungen sind ein weiteres großes Problem, über das sich Entwickler bei SVN oft beschweren. Wenn Sie den Verlauf verwenden, um einen Satz von Änderungen vorzunehmen und zu übernehmen, wird dann eine weitere Änderung (z. B. linear) vorgenommen und übernommen, sodass das Zusammenführen einfach ist.

Die Dinge werden kompliziert, wenn zwei oder mehr Entwickler an derselben Codebasis arbeiten und eine Zusammenführung erforderlich ist. In diesem Fall schlägt SVN fehl und der Entwickler muss den Konflikt manuell lösen, was Stunden an Entwicklerzeit verschwendet.

Warum SVN verwenden?

Vor einigen Jahren übertrafen Git und andere kommerzielle Steuerungssysteme SVN. Aber SVN hat immer noch zwei Gründe: Kosten und Trägheit.

Kosten: SVN ist Open Source, was bedeutet, dass es „kostenlos“ ist.

Trägheit: Sobald Sie eine große Codebasis aufgebaut haben, kann es schwierig sein, VCS zu wechseln. SVN gibt es seit 2004 und Organisationen, die es übernehmen, verfügen über Millionen von Codezeilen.

Das obige ist der detaillierte Inhalt vonWas ist SVN?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn