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 erläutert. Dort wird gezeigt, wie der SVN-Client unter Linux und Windows installiert wird 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 für diesen Router prüfen und verwenden können.

Was ist Subversion?

Subversion ist keineswegs 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. Abgesehen davon ist es eines der freien, es ist ausgereift und wird weltweit intensiv genutzt.

Aus dem Subversion "Red Book":

Subversion is a free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”

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 gleichzeitig 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 eine Verteilung der Verantwortlichkeiten stattfindet und verschiedene Personen unterschiedliche Aspekte des Projekts ändern. Ohne einen Versionierungsmechanismus 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 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 dieses bestimmte Commit nichts geändert hat.

Die Arbeitskopie

Eine Arbeitskopie ist eine lokale Kopie (oder "Checkout") einer bestimmten Version. Normalerweise ist diese Version beim Auschecken die „neueste“ (auch als „Kopf“ bezeichnet), eine vorherige kann jedoch 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". Dies liegt daran, dass Sie die Änderungen anderer Personen weder sehen, noch aktualisieren, wenn Sie Ihre Kopie aktualisieren oder bestätigen.

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 zu lösen, bevor Sie überhaupt daran denken, Änderungen an dem Repository vorzunehmen.

Zusammenführen

Das Zusammenführen bezieht sich auf den Prozess, durch den geänderte 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 folgender:

1. Überprüfen Sie den vorhandenen Code (in der Regel der "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 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 install 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".
"Auschecken" Ihrer Arbeitskopie

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 des Erstellens eines eigenen Projekts befassen möchten, können Sie das Repository dieses Autors anonym überprüfen.

Ein Hinweis zum hotfortech-Projekt: Dieses Projekt ist als Wrapper für die Funktionen gedacht, die DD-WRT in 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 Verschnaufen.

Unter Linux / DD-WRT

Erstellen Sie das Verzeichnis, in dem Sie arbeiten möchten, z. B. unter 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 Ihres 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 verwenden (Rechtsklick). 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 lautet einfach:

svn up

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 Festschreiben.

Unter Linux / DD-WRT

Dies ist ein Beispiel für das Commit, das ich für das hotfortech-Projekt gemacht habe, mit dem es auf Version 19 umgestiegen ist:

svn commit -m “updated to reflect new ant-ads pack link”

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, Sie sollten sich wie ein BOSS verpflichten können.

Schlussbemerkungen Dies sollte ausreichen, um den Einstieg zu erleichtern. Es wird empfohlen, die SVN-Nachschlagewerke zu lesen, um mehr über die Verwendung, Optionen und Vorbehalte von SVN zu erfahren. Außerdem erinnern wir Sie (wieder) 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.

Top-Tipps:
Kommentare: