Wollten Sie schon immer an einem Projekt mit der Möglichkeit, Ihre Änderungen zu verfolgen und rückgängig zu machen, zu arbeiten? How-To Geek erklärt, wie man das beliebte Versionsverfolgungssystem Subversion (auch bekannt als SVN) verwendet.
Bild von Eindeutig mehrdeutig
Voranmeldung
Dieses Handbuch soll Ihnen die Möglichkeit geben, den Subversion-Client im Allgemeinen und, falls vorhanden, auf Ihrem *DD-WRT-Router zu verwenden. Dieses Handbuch ist keineswegs ein endgültiges Handbuch für Subversion und viele Informationen finden Sie auf der Subversion Rotes Buch. Dieser Leitfaden soll Ihnen nur eine kurze Antwort auf die grundlegendsten Fragen geben.
Überblick
Es kann zahlreiche Gründe geben, warum Sie den neuesten Code für ein Softwareprojekt, das ein Versionierungssystem verwendet, „auschecken“ möchten. Auf diese Weise können Sie von den neuesten noch unveröffentlichten Änderungen profitieren, beim Testen und sogar bei der Entwicklung helfen. In diesem Handbuch gehen wir auf einige grundlegende SVN-Terminologie ein und zeigen, wie Sie den SVN-Client unter Linux, Windows und, falls Sie einen haben, Ihren OPKG-fähigen DD-WRT-Router installieren. Wir haben auch ein Beispiel für ein Projekt beigefügt, das Sie auschecken und für den Router verwenden können.
Was ist Subversion?
Subversion ist keineswegs das einzige existierende Versionskontrollsystem und Alternativen umfassen Git (die erstellt wurde von Linus Torvalds der Gründer des Linux-Kernels), Mercurial und PerForce, um nur einige zu nennen. Trotzdem ist es eines der kostenlosen, es ist ausgereift und wird weltweit ausgiebig verwendet.
Aus dem Subversion „Rotes Buch“:
Subversion ist eine freie/Open Source (VCS). Das heißt, Subversion verwaltet Dateien und Verzeichnisse und die daran vorgenommenen Änderungen im Laufe der Zeit. Auf diese Weise können Sie ältere Versionen Ihrer Daten wiederherstellen oder den Änderungsverlauf Ihrer Daten überprüfen. In diesem Zusammenhang halten viele Leute ein Versionskontrollsystem für eine Art „Zeitmaschine“.
Notiz: Dieses Buch die ultimative Sammlung von Wissen über Subversion und es wird empfohlen, sich bei allen Subversion-bezogenen Themen darauf zu beziehen.
Was ist Versionierung?
Versionierung ist ein Prozess, bei dem der Status eines Projekts zu einem bestimmten Zeitpunkt gespeichert wird. Diese Art von Verfahren wird häufig verwendet, um die Softwareentwicklung zu verwalten, damit das Projekt weiter verbessert oder Funktionen hinzugefügt werden können, während gleichzeitig verfolgt werden kann, was sich seit dem letzten Gesamtspeicherpunkt geändert hat. Genauer gesagt kann diese Art von Verfahren für eine einzelne Person nützlich sein, aber noch mehr für eine Gruppe von Personen, die alle an demselben Projekt arbeiten. Dies liegt daran, dass bei der Arbeit an einem Projekt als Gruppe normalerweise die Verantwortlichkeiten verteilt sind und verschiedene Personen verschiedene Aspekte des Projekts ändern. Ohne einen Versionierungsmechanismus wäre es sehr schwierig, alle über die neuesten Arbeitsänderungen von allen anderen auf dem Laufenden zu halten.
Terminologie
Das Repository
Die Repository ist der Ort, an dem alle Daten von allen verschiedenen Orten gespeichert werden. In der Subversion-Welt ist es aus Sicht des Clients der Server, der die Datenbank des Projekts hält. Diese Datenbank enthält alle Dateien, die Teil des Projekts sind, mit all ihren früheren Versionen.
Revision
Wenn ein Repository erstellt wird, erhält es die Revision Zahl von Null (0). Diese Zahl wird jedes Mal, wenn ein Commit ausgeführt wird, um eins (1) erhöht. Die Revisionsnummer ist global für das Repository. Das heißt, es gibt keine individuelle Revisionsnummer für einzelne Dateien im Repository, selbst wenn sich in dieser Datei für diesen bestimmten Commit nichts geändert hat.
Die Arbeitskopie
EIN Arbeitskopie ist eine lokale Kopie (oder „Checkout“) einer bestimmten Version. Normalerweise ist diese Version beim Auschecken die „neueste“ (auch als „Kopf“), aber eine vorherige kann angefordert werden. Der Benutzer kann mit der lokalen Kopie alles tun, was er möchte, mit dem Wissen, dass er im schlimmsten Fall den Code einfach erneut auschecken könnte. Außerdem ist diese Kopie „privat“. Dies liegt daran, dass Sie weder die Änderungen anderer Personen noch Ihre Änderungen sehen, bis Sie Ihre Kopie aktualisieren oder festschreiben.
Aktualisierung & Konfliktlösung
Eine lokale Arbeitskopie kann Aktualisiert. Das heißt, wenn Sie eine bestimmte Version „ausgecheckt“ haben und während der Arbeit die Version im Repository aktualisiert wurde, können Sie Ihre Arbeitskopie auf den neuesten Stand bringen. Tatsächlich verhindert der Server, dass Sie Ihre Änderungen festschreiben, bevor Sie auf die neueste Version aktualisieren, die dem Repository entspricht. Dies geschieht, um Sie dazu zu zwingen Konflikte lösen lokal, bevor Sie überhaupt daran denken, Änderungen an das Repository zu übertragen.
Zusammenführen
Zusammenführen bezieht sich auf den Prozess, bei dem geänderter Code in eine Version gemischt wird. Es kann auch zur Lösung von Konflikten kommen.
Verpflichtet
Engagement ist der Prozess, bei dem die Änderungen, die Sie an Ihrer lokalen Kopie vorgenommen haben, in das Repository zurückgeführt werden. Dies ist der gefährlichste Teil des Prozesses, da hier von Ihnen vorgenommene Änderungen Auswirkungen auf andere Personen haben können, die dasselbe Repository verwenden. Deshalb geschieht dies in der Regel nach einiger Überlegung, im Konsens des Teams und nachdem Sie eventuelle Zusammenführungskonflikte gelöst haben.
Der Arbeitsablauf
Der grundlegendste Arbeitsablauf aus Benutzersicht bei der Verwendung von Subversion ist dieser:
1. Checken Sie den vorhandenen Code (normalerweise das „Kopf“).
2. Nehmen Sie Änderungen vor, fügen Sie Dateien hinzu und entwickeln Sie allgemein den Code.
3. Aktualisieren Sie auf die neueste Version, um sicherzustellen, dass Ihre lokale Kopie mit den Updates im Repository synchronisiert ist.
4. Führen Sie ggf. Konflikte lokal zusammen und lösen Sie sie.
5. Übertragen Sie die zusammengeführten Änderungen in das Repository.
6. Gehe zu Schritt 2.
Lass uns krachen
Installieren Sie den Client
Um Subversion nutzen zu können, müssen Sie den Client auf Ihrem Rechner installieren.
Unter Linux
Sie müssen nur das Paket installieren. Unter Ubuntu/Mint würde dies folgendermaßen erfolgen:
sudo aptitude install subversion
Auf DD-WRT
Wenn Sie den Abschnitt „How To Install Additional Software On Your Home Router (DD-WRT)“ befolgt haben, können Sie den svn-Client einfach installieren, indem Sie Folgendes ausführen:
opkg-Update; opkg install subversion-client
Unter Windows
Während wir Deep-Geek-Benutzer vielleicht anfangen zu vergessen, dass die GUI manchmal existiert, hat nicht jeder. Wenn Sie einen Windows-Client verwenden möchten, um eine Verbindung zu einem SVN-Repository herzustellen, ist bei weitem das beliebteste «Schildkröte“. Um es zu benutzen, einfach herunterladen das Programm und installieren Sie es in der üblichen Weise «nächst, als nächstes, beenden».
Erstellen Sie das „Repository“
Während wir in diesem Handbuch nicht zu sehr auf die Einrichtung eines Subversion-Servers eingehen, ist die Google-Alternative kein schlechter Start für den Anfänger. So erstellen Sie ein Google-Repository:
- Geh rüber zum Google Code-Hosting Website und „erstellen“ Sie ein neues Projekt.

- Füllen Sie auf der nächsten Seite die erforderlichen Felder aus und wählen Sie den Typ des „Versionskontrollsystems“ aus, das subversion sein soll.

Hinweis: Sie können sich die Unterschiede zwischen den von Google angebotenen Lizenzen ansehen, bevor Sie eine für das Projekt auswählen.
- Klicken Sie auf „Projekt erstellen“.
„Checkout“ Ihre Arbeitskopie
Sobald Ihr Projekt erstellt wurde, sollten Sie die Anweisungen zum Zugriff auf die Registerkarte «Quelle» finden.

Das Schöne an Google-Code ist, dass er eine anonyme schreibgeschützte Version für Ihr Projekt ermöglicht. Wenn Sie sich nicht die Mühe machen möchten, Ihr eigenes Projekt zu erstellen, können Sie das Repository dieses Autors anonym auschecken.
Eine Anmerkung zum Hotfortech-Projekt: Dieses Projekt ist als Wrapper für die Funktionen gedacht, die zu DD-WRT auf How-To Geek hinzugefügt wurden (die ich persönlich verwende) sowie einige persönliche Optimierungen. Obwohl dieses Projekt darauf ausgerichtet ist, in Verbindung mit den hier veröffentlichten Artikeln über howtogeek zu arbeiten, ist es immer noch mein privates Projekt. Das heißt, es passt sehr gut zu meinem Buffalo-Router (AR71xx-Architektur), meinen persönlichen Launen und ist anfällig für gelegentliche Borkage.
Unter Linux/DD-WRT
Erstellen Sie das Verzeichnis, in dem Sie arbeiten möchten, zum Beispiel auf DD-WRT, das sein könnte:
mkdir -p /jffs/svn; cd /jffs/svn
Der vollständige Befehl unter Linux besteht aus dem SVN-Befehl selbst, der Direktive „checkout“, der Adresse des Repositorys und dem Verzeichnis zum Auschecken. Erstellen Sie ein leeres Verzeichnis und führen Sie den folgenden Befehl aus:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
Beachten Sie, dass im obigen Beispiel die schreibgeschützte Version ausgecheckt wird. Wenn Sie sich dafür entschieden haben, Ihr eigenes Repository zu erstellen, müssen Sie den httpS-Link verwenden.
Unter Windows
Denn Schildkröte ist ein Shell-Erweiterung verwenden, müssen Sie das Kontextmenü des Windows-Datei-Explorers (Rechtsklick) verwenden, um sie zu verwenden. Wenn Sie versuchen, es über das Startmenü aufzurufen, erhalten Sie Folgendes:

- Erstellen Sie ein leeres Verzeichnis.
- Klicken Sie mit der rechten Maustaste darauf, um das Kontextmenü aufzurufen.
- Wählen Sie „SVN-Kasse“ aus:

- Kopieren Sie den Link für das Projekt (falls vorhanden) und fügen Sie ihn in das Textfeld «URL» ein:

- Abhängig von der Größe Ihres Projekts kann dies eine Weile dauern, aber wenn der „Checkout“ abgeschlossen ist, sollten Sie Folgendes sehen:

- Sie können mit der Entwicklung beginnen.
„Aktualisieren“ & „Zusammenführen“ Ihrer Arbeitskopie
Wenn Sie mit Kollegen am Code arbeiten oder selbst den Code von mehreren Standorten (zB Laptop, Desktop oder sogar Router) aktualisieren, müssen Sie Ihre Arbeitskopie aktualisieren, bevor Sie die letzten Änderungen übernehmen.
Unter Linux/DD-WRT
Der Befehl dazu auf diesen POSIX-Systemen lautet einfach:
svn hoch
Unter Windows
- Klicken Sie mit der rechten Maustaste in das Arbeitsverzeichnis und wählen Sie „SVN Update“:

- Wenn Sie auf Konflikte stoßen, befolgen Sie die Anweisungen auf dem Bildschirm und entscheiden Sie, was Sie dagegen tun können.
„Übernehmen“ Sie Ihre Änderungen
Das ist es, Sie sollten konfliktfrei und bereit sein, das Repository mit Ihren Änderungen zu aktualisieren.
Zu beachten ist hier, dass es gängige Praxis ist, dem Commit eine „Log“-Nachricht hinzuzufügen, um sich leicht daran erinnern zu können, warum die Änderungen vorgenommen wurden. Tatsächlich macht das Repository von Google dies zu einer zwingenden Voraussetzung für das Commit.
Unter Linux/DD-WRT
Dies ist ein Beispiel für das Commit, das ich für das Hotfortech-Projekt gemacht habe, das es auf Version 19 aktualisiert hat:
svn commit -m „aktualisiert, um den neuen Link zum Ameisen-Werbepaket widerzuspiegeln“
Unter Windows
- Klicken Sie mit der rechten Maustaste in das Arbeitsverzeichnis und wählen Sie „SVN Commit“ aus:

- Sie sollten von einem Fenster begrüßt werden, in dem Sie eine Protokollmeldung notieren können:

- Klicken Sie auf OK und geben Sie das von Google generierte Passwort ein, wenn Sie zur Eingabe eines Passworts aufgefordert werden.
- Wenn der Commit erfolgreich war, sollten Sie Folgendes sehen:

- Das ist es, du solltest dich verpflichten können wie ein Chef.
Schlussbemerkungen
Dies sollte für den Anfang ausreichen. Es wird empfohlen, die SVN-Referenzbücher zu lesen, um einen tieferen und besseren Einblick in alle Verwendungen, Optionen und Vorbehalte von SVN zu erhalten. Außerdem erinnern wir Sie (wieder) daran, dass Subversion NICHT das einzige Versionskontrollsystem auf dem Markt ist und GIT (die erstellt wurde von Linus Torvalds des Linux-Kernel-Gründers) scheint in den letzten Jahren an Popularität zu gewinnen.
Wenn Sie sich dafür entscheiden, die „running-config.sh“ aus dem Hotfortech-Projekt auf Ihrem Router auszuführen, werden Sie feststellen, dass es derzeit für Sie installiert wird: Das Anti-Ads-Pack, das Opkg geek-init-Skript sowie Dinge wie das vollständige GNU „ls“, „less“, „BASH“ und mehr.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Weitere Funktionen stehen noch aus und werden in Zukunft hinzugefügt.
Systemadministratoren werden sich aus der Codierung heraus codieren.