Vorstellung Subversion

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Vorstellung Subversion

Beitrag von alexander »

Hi,

die Linux-User werden es schon gehört haben, wer Lazarus aus dem SVN benutzt, kennt es.
Subversion.
Doch was auch mich überrascht hat: Es ist so einfach, dass jeder es auch für sein eigenes Programm verwenden kann. Und es ist extrem nützlich.
Und es ist Plattformunabhängig.

Was ist das?
Es ist einen Art Datenbank, in der alle Verschiedenen Versionen (Revisions) gespeichert sind. Mit Hilfe dieser Datenbank kannst du z.B. Unterschiede zwischen Versionen aufzeigen und sogar dein komplettes Programm zu einem früheren Zeitpunkt zurücksetzen, und auch wieder zurück.
Sehr hilfreich ist es auch wenn man einen Fehler gemacht hat, der vorher noch nicht da war und man nochmal zu einem früheren Zeitpunkt zurück muss.
All das geht relativ einfach mit der GUI KDESVN.

Bei großen Projekten können viele verschiedene Programmierer an dem selben Projekt arbeiten (siehe Lazarus), indem sie die Programmdateien lokal auf ihrem Rechner haben, diese verändern und wieder auf die Subversion-Datenbank auf dem Lazarus-Server hochladen. All das sind maximal 3 Konsolenbefehle, oder gar graphisch mit KDESVN.


Schritte für Einzel-Programmierer-Projekte
Also es ist so: Du benötigst eine Ordner Struktur wie im Anhang (bild). (alle müssen leer sein)
Dann öffnest du KDESVN und klickst auf Datei-->Subversion-Admin --> Erstelle und öffne neues Repository und wählst den Ordner ProjektName -->ProjektName (wird die Datenbank) aus und klickst: "Erstelle Hauptverzeichnisse" ab.

Jetzt gehst du auf Subversion --> Repository --> Checke aktuelles Repository aus, und gibst als Zielverzeichnis ProjektName -->lokale an und OK.

Das wärs. In ProjektName -->lokale --> ProjektName (ordner wurde erstellt) kannst du nun deine Projekt-Dateien hineinkopieren und kannst sie in der Datenbank abspeichern. Und das geht so:
Erstelle die Datei ProjektName -->lokale --> ProjektName --> meineTestdatei.txt und gehe in KDESVN auf Datei-->Öffnen und wählst den Ordner der Arbeitskopie (ProjektName -->lokale --> ProjektName) aus. Nun solltest du die Datei meineTestdatei.txt in KDESVN sehen mit der Bemerkung nicht versioniert.
Rechtsklick auf meineTestdatei.txt und "Füge ausgewählte Dateien/Verzeichnisse hinzu".

Nun kannst du das erste Mal deine veränderte Arbeitskopie in die Datenbank speichern:
Klicke so "ins Leere" damit keine Datei in Subversion ausgewählt ist und klicke rechts.
Dann "Senden".
Klicke auf OK.

Und du siehst dass die Revision-Nummer (Versionsnummer) sich auf 1 erhöht hat.
So kannst du das immer machen wenn du eine wichtige Veränderung im programm gemacht hast.

Funktionen
Das Programm ist sehr "mächtig" und kann recht viel. Nützlich ist aber vor allem rechtsklick auf eine Datei --> "Zeige letzte Veränderungen".
Wenn du eine alte Version nochmal haben willst klickst du einfach auf Subversion --> Arbeitskopie --> Auf Revision erneuern. Dann kannst du sagen welche Revision du haben willst und schon ist es geschehen.
Mit "Auf Head Revision erneuern" kannst du das ganze wieder auf die aktuelle Revision bringen.

Tipps
Schließe die Binary von der Revision aus. Die ist unnütz und riesig. Dazu rechtsklick auf Datei und "Ignoriere"
Mache immer einen Log Eintrag, sonst hast du keinen blassen Schimmer mehr wann das war was du suchst.

Schluss
Ich hoffe ich konnte dem einen oder anderen die Vorteile zeigen. Man benötigt so keine Sicherungskopien mehr per Hand anzulegen und zu beschriften.
Ich benutze es täglich und bin sehr zufrieden mit Subversion.

Viele Grüße
Alexander

PS: Ein Windows Programm und Aleitung sind hier:
http://www.codeproject.com/KB/books/Sub ... seSVN.aspx" onclick="window.open(this.href);return false;
Dateianhänge
Bildschirmfoto.png
Bildschirmfoto.png (6.88 KiB) 602 mal betrachtet
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Schöne Beschreibung.

Ich würde noch zwei Sachen ergänzen wollen:

1. ein anderes Ausgabeverzeichnis in Lazarus deklarieren und dieses ebenfalls ignorieren, somit ist auch das Binary automatisch mit ignoriert. (Compilereinstellungen)

2. Projekteinstellungen >> Sitzung nicht in lpi Speichern, stattdessen am besten in lps und diese ebenfalls ignorieren

Ziel ist ja, genau das zu speichern, was zur (wieder)Herstellung nötig ist, dabei sind diese beiden Sachen aber für das eigentliche Programm nicht relevant und verschwenden Platz und gerade die Sitzungsdaten in der lpi sorgen nur dafür, das die lpi quasi nach jedem Aufruf von Laz sich geändert hat und unnützer Weise neu versioniert wird.
Johannes

Antworten