Versionsverfolgung mit Subversion (SVN) für Anfänger
Wollten Sie schon immer an einem Projekt mit der Fähigkeit arbeiten, Ihre Änderungen zu verfolgen und rückgängig zu machen? How-To-Geek erklärt How-To, um das beliebte Versionsverfolgungssystem Subversion (a.k.a SVN) zu verwenden..
Bild von eindeutig mehrdeutig
Prelog
Dieses Handbuch soll Ihnen die Möglichkeit geben, den Subversion-Client im Allgemeinen und, falls vorhanden, auf Ihrem * DD-WRT-Router zu verwenden. Dieser Leitfaden ist keinesfalls ein endgültiger Leitfaden für Subversion. Viele Informationen finden Sie im Subversion Red Book. 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 Versionsverwaltungssystem verwendet, auschecken möchten. Auf diese Weise können Sie von den neuesten, noch nicht veröffentlichten Änderungen profitieren, beim Testen und sogar bei der Entwicklung helfen. In diesem Handbuch werden einige grundlegende SVN-Terminologie beschrieben, und Sie erfahren, wie Sie den SVN-Client unter Linux und Windows installieren und ob Sie über einen DD-WRT-Router mit OPKG verfügen. Wir haben auch ein Beispiel für ein Projekt beigefügt, das Sie abmelden und für diesen Router verwenden können.
Was ist Subversion??
Subversion ist keinesfalls das einzige Versionskontrollsystem. Zu den Alternativen zählen Git (das von Linus Torvalds, dem Linux-Kernel-Gründer) erstellt wurde, Mercurial und PerForce, um nur einige zu nennen. Damit ist es eines der freien, es ist ausgereift und wird weltweit intensiv genutzt.
Aus der Subversion "Red Book":
Subversion ist eine freie / offene Quelle Versionskontrollsystem (VCS). Subversion verwaltet also Dateien und Verzeichnisse und die an ihnen vorgenommenen Änderungen im Laufe der Zeit. Auf diese Weise können Sie ältere Versionen Ihrer Daten wiederherstellen oder den Verlauf der Änderungen Ihrer Daten überprüfen. In dieser Hinsicht denken viele Leute an ein Versionskontrollsystem als eine Art "Zeitmaschine".
Hinweis: Dieses Buch ist Die ultimative Sammlung von Wissen über Subversion. Es wird empfohlen, sich auf alle Subversion-bezogenen Themen 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 zum Verwalten der Softwareentwicklung verwendet, so dass die Arbeit zur Verbesserung des Projekts oder zum Hinzufügen von Funktionen fortgesetzt werden kann, während nachverfolgt werden kann, was sich seit dem letzten "Speichern" -Punkt geändert hat. Diese Vorgehensweise kann für eine einzelne Person nützlich sein, vor allem aber für eine Gruppe von Personen, die an demselben Projekt arbeiten. Dies liegt daran, dass in der Regel bei der Arbeit an einem Projekt als Gruppe die Verteilung der Verantwortlichkeiten auftritt und verschiedene Personen verschiedene Aspekte des Projekts ändern. Ohne einen Versionsmechanismus wäre es sehr schwierig, alle Benutzer über die neuesten Arbeitsänderungen auf dem Laufenden zu halten.
Terminologie
Das Repository
Das Repository ist der Ort, an dem alle Daten von allen verschiedenen Orten gespeichert werden. In der Subversion-Welt ist der Server aus Sicht des Clients die Datenbank des Projekts. Diese Datenbank enthält alle Dateien, die Teil des Projekts sind, mit allen früheren Versionen.
Revision
Wenn ein Repository erstellt wird, erhält es die Revisionsnummer Null (0). Diese Anzahl wird jedes Mal um eins (1) erhöht, wenn ein Commit ausgeführt wird. Die Versionsnummer ist für das Repository global. Das heißt, es gibt keine individuelle Revisionsnummer für einzelne Dateien im Repository, selbst wenn sich in dieser Datei nichts für das bestimmte Commit geändert hat.
Die Arbeitskopie
Eine Arbeitskopie ist eine lokale Kopie (oder "Checkout") einer bestimmten Version. Normalerweise ist diese Version im ausgecheckten Zustand die „neueste“ (auch als „Kopf“ bezeichnet), aber eine vorherige kann angefordert werden. Der Benutzer kann mit der lokalen Kopie alles tun, was er / sie möchte, mit dem Wissen, dass er den Code im schlimmsten Fall noch einmal auschecken könnte. Darüber hinaus ist diese Kopie "privat". Das liegt daran, dass Sie die Änderungen anderer Personen weder sehen, noch aktualisieren, bevor Sie Ihre Kopie aktualisieren oder festschreiben.
Aktualisierung und Konfliktlösung
Eine lokale Arbeitskopie kann aktualisiert werden. Wenn Sie also 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 übernehmen, bevor Sie auf die neueste Version aktualisieren, um dem Repository zu entsprechen. Dies geschieht, um Sie zu zwingen, Konflikte lokal aufzulösen, bevor Sie überhaupt daran denken, Änderungen an dem Repository vorzunehmen.
Zusammenführen
Das Zusammenführen bezieht sich auf den Prozess, durch den geänderten Code in eine Version überblendet wird. Dies kann auch die Lösung von Konflikten mit sich bringen.
Commits
Beim Commit werden die Änderungen, die Sie an Ihrer lokalen Kopie vorgenommen haben, wieder in das Repository eingefügt. Dies ist der gefährlichste Teil des Prozesses, da hier vorgenommene Änderungen Auswirkungen auf andere Benutzer haben können, die dasselbe Repository verwenden. Aus diesem Grund geschieht dies in der Regel nach einiger Überlegung, mit dem Konsens des Teams und nachdem Sie alle Verschmelzungskonflikte gelöst haben.
Der Workflow
Der grundlegendste Arbeitsablauf aus Benutzersicht bei der Verwendung von Subversion ist der folgende:
1. Überprüfen Sie den vorhandenen Code (normalerweise der "Kopf")..
2. Nehmen Sie Änderungen vor, fügen Sie Dateien hinzu und entwickeln Sie im Allgemeinen den Code.
3. Aktualisieren Sie auf die neueste Version, um sicherzustellen, dass Ihre lokale Kopie mit den Aktualisierungen im Repository synchronisiert ist.
4. Lokale Zusammenführung und Lösung von Konflikten, falls erforderlich.
5. Übernehmen Sie die zusammengeführten Änderungen in das Repository.
6. Gehe zu Schritt 2.
Lass uns krachen
Installieren Sie den Client
Um Subversion verwenden zu können, müssen Sie den Client auf Ihrem Computer installieren.
Unter Linux
Sie müssen nur das Paket installieren. Unter Ubuntu / Mint würde dies mit folgendem geschehen:
sudo aptitude install subversion
Auf DD-WRT
Wenn Sie die Anweisungen zum Installieren zusätzlicher Software auf Ihrem Heimrouter (DD-WRT) befolgt haben, können Sie den svn-Client installieren, indem Sie einfach Folgendes ausgeben:
opkg Update; opkg installiere den Subversion-Client
Unter Windows
Während wir uns für Geek-User interessieren, kann es sein, dass die GUI manchmal existiert, aber nicht jeder. Wenn Sie einen Windows-Client verwenden möchten, um eine Verbindung zu einem SVN-Repository herzustellen, ist „Tortoise“ der mit Abstand beliebteste. Um es zu verwenden, laden Sie einfach das Programm herunter und installieren Sie es wie gewohnt "next, next, finish".
Erstellen Sie das "Repository"
Während wir uns in diesem Handbuch nicht ausführlich mit der Einrichtung eines Subversion-Servers beschäftigen, ist die Google-Alternative für den Neuling kein schlechter Start. So erstellen Sie ein Google-Repository:
- Gehen Sie zur 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" als Subversion aus.
Hinweis: Möglicherweise möchten Sie einen Blick auf den Unterschied zwischen den von Google angebotenen Lizenzen werfen, bevor Sie eine für das Projekt auswählen. - Klicken Sie auf "Projekt erstellen"..
Nachdem Sie Ihr Projekt erstellt haben, sollten Sie auf der Registerkarte "Quelle" Anweisungen finden, wie Sie darauf zugreifen können.
Das Schöne an Google-Code ist, dass eine anonyme schreibgeschützte Version für Ihr Projekt aktiviert wird. Wenn Sie sich nicht mit der Schwierigkeit befassen möchten, Ihr eigenes Projekt zu erstellen, können Sie das Repository dieses Autors anonym überprüfen.
Eine Anmerkung zum hotfortech-Projekt: Dieses Projekt ist als Wrapper für die Funktionen gedacht, die DD-WRT zu How-To-Geek (die ich persönlich verwende) hinzugefügt wurden, sowie einige persönliche Anpassungen. Dieses Projekt ist darauf ausgelegt, in Verbindung mit den hier auf howtogeek veröffentlichten Artikeln zu arbeiten, es ist jedoch immer noch mein privates Projekt. Das heißt, es eignet sich sehr gut für meinen Buffalo-Router (AR71xx-Architektur), meine persönlichen Launen und neigt zu gelegentlichem Versagen.
Unter Linux / DD-WRT
Erstellen Sie das Verzeichnis, in dem Sie arbeiten möchten, z. B. auf DD-WRT. Dies könnte Folgendes sein:
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 zu checkenden Verzeichnis. 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 für die Erstellung eines eigenen Repositorys entschieden haben, müssen Sie den httpS-Link verwenden.
Unter Windows
Da es sich bei tortoise um eine Shell-Erweiterung handelt, müssen Sie das Kontextmenü des Windows-Explorer (Rechtsklick) verwenden. Wenn Sie versuchen, es vom Startmenü aus aufzurufen, erhalten Sie:
- Erstellen Sie ein leeres Verzeichnis.
- Klicken Sie mit der rechten Maustaste, um das Kontextmenü aufzurufen.
- Wählen Sie "SVN Checkout":
- 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 die "Kasse" abgeschlossen ist, sollten Sie Folgendes sehen:
- Sie können mit der Entwicklung beginnen.
"Aktualisieren" und "Zusammenführen" Ihrer Arbeitskopie
Wenn Sie mit Kollegen an dem Code arbeiten oder Sie selbst den Code von mehreren Standorten aus aktualisieren (z. B. Laptop, Desktop oder sogar Router), müssen Sie Ihre Arbeitskopie aktualisieren, bevor Sie die letzten Änderungen übernehmen.
Unter Linux / DD-WRT
Der Befehl dazu auf diesen POSIX-Systemen ist einfach:
svn auf
Unter Windows
- Klicken Sie mit der rechten Maustaste in das Arbeitsverzeichnis und wählen Sie "SVN Update":
- Wenn Sie auf Konflikte stoßen, folgen Sie den Anweisungen auf dem Bildschirm, und entscheiden Sie, was Sie dagegen tun sollen.
"Übernehmen" Sie Ihre Änderungen
Das heißt, Sie sollten konfliktfrei sein und das Repository mit Ihren Änderungen aktualisieren.
Hierbei ist zu beachten, dass es üblich ist, dem Commit eine Protokollnachricht hinzuzufügen, um sich leicht merken zu können, warum die Änderungen vorgenommen wurden. Das Repository von Google macht 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 auf Version 19 umgestiegen ist:
svn commit -m "aktualisiert, um den neuen Link für das Ant-Ads-Paket wiederzugeben"
Unter Windows
- Klicken Sie mit der rechten Maustaste in das Arbeitsverzeichnis und wählen Sie "SVN Commit":
- Sie sollten von einem Fenster begrüßt werden, in dem Sie eine Protokollnachricht 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 das Commit erfolgreich war, sollten Sie Folgendes sehen:
- Das ist es, du solltest dich wie ein BOSS begehen können.
Schlussbemerkungen
Dies sollte ausreichen, um den Einstieg zu erleichtern. Es wird empfohlen, die SVN-Nachschlagewerke zu lesen, um einen tieferen und besseren Überblick über alle Verwendungsmöglichkeiten, Optionen und Vorbehalte von SVN zu erhalten. Außerdem erinnern wir Sie (erneut) daran, dass Subversion NICHT das einzige Versionskontrollsystem ist, und GIT (das von Linus Torvalds, dem Linux-Kernel-Gründer) erstellt wurde, scheint in den letzten Jahren an Popularität zu gewinnen.
Wenn Sie sich entscheiden, "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 aus und werden in Zukunft hinzugefügt.
Systemadministratoren codieren sich aus der Codierung heraus.