|
Das Magazin Access im Unternehmen beginnt mit Ausgabe 02/2010 eine Serie zum Thema Quellcodeverwaltung. 25./26.09.2010: AEK in Nürnberg OASIS und SubversionOASIS-SVNDieses Tutorial beleuchtet detailiert die Zusammenarbeit zwischen Access/OASIS und einem Subversion-Server in der Praxis. Voraussetzungen
Im Beispiel wird als Webserver ein IIS mit Visual-SVN (kostenlos) verwendet. Arbeitsverzeichnis anlegenAls erstes legen wir in einem beliebigen Laufwerk/Ordner ein neues Verzeichnis „Test“ für unser Projekt an.
Im nun folgenden Dialog müssen wir nun die Adresse unseres Subversion-Repository angeben – dabei lassen wir alle Optionen wie voreingestellt.
Tortoise holt nun alle Ordner und Dateien vom Server ab, so wie sie aktuell im Repository vorliegen.
Da unser Repository nur die von Visual-SVN vorgeschlagene Ordnerstruktur enthält, werden lediglich die Unterverzeichnisse in unserer Arbeitskopie abgelegt – unsere Struktur sieht nun also wie folgt aus:
Diese Struktur hat sich in der Praxis bewährt und wird so auch von den meisten Anwendern verwendet. Einstellungen in OASISIm Beispiel verwende ich die bekannte „Nordwind.mdb“, die bei einer normalen Installation von Access von Microsoft mitgeliefert wird.
Da wir zuerst nur unseren normalen Entwicklungsast des Repository verwenden möchten, geben wir als Verzeichnis für diese Datenbank den Ordner „trunk“ unserer Arbeitskopie an.
Um direkten Zugriff auf die Tortoise-Funktionen zu erhalten, sollte die Option "Symbolleistenschaltflächen anzeigen" gesetzt sein. Export der DateienNachdem OASIS wie gewünscht konfiguriert wurde, exportieren wir alle Objekte unserer Datenbank in das Verzeichnis.
Dazu öffnen wir mit OASIS den Exportdialog, markieren mit STRG+A alle Objekte und exportieren diese dann durch einen Klick auf OK. Übertragen der ÄnderungenUm die Quelldateien - die sich ja z.Zt. nur im entsprechenden Ordner unserer Arbeitskopie befinden – nun in das Repository auf dem Webserver zu übertragen, können wir entweder das Kontextmenü im Windows-Explorer verwenden, oder aber den in OASIS angebotenen Menüpunkt „Commit…“.
Im nun erscheinenden Dialog werden uns alle soeben exportierten Dateien aufgelistet und als „non-versioned“ deklariert. Laufende AktualisierungNachdem wir nun z.B. an einem unserer Module einige Änderungen durchgeführt haben, möchten wir diese natürlich auch in das Repository übertragen.
Der erfolgreiche Export wird durch ein akustisches Signal angezeigt.
Hier werden uns nur noch die Dateien angezeigt, die seit der letzten Aktualisierung verändert wurden. Abholen des aktuellen RevisionsstandesSolange wir allein an einem Projekt arbeiten, reicht das bisher beschriebene Verfahren aus, um unseren Projektfortschritt im Repository zu dokumentieren.
Hier wird uns z.B. mitgeteilt, dass ein anderes Teammitglied weitere Änderungen an nserem zuletzt bearbeiteten Modul durchgeführt hat.
Import in Access
Die geänderten Dateien können wir nun (ähnlich wie beim Export) über den Importdialog von OASIS in unsere Datenbank importieren. Tipp: Auf diese Art und Weise können wir z.B. auch mal eine fehlerhafte Änderung an einem Objekt (Formular, Bericht, Modul etc.) rückgängig machen und auf den aktuellen Zustand im Arbeitsverzeichnis zurückgreifen. Fortgeschrittene TechnikenBis hier sind die für die tägliche Arbeit wichtigsten und meistverwendeten Befehle beschrieben. Änderungen rückgängig machenAuch wenn wir uns in unserer Entwicklung einmal komplett verrannt haben und mit OASIS fehlerhafte Objekte in unser Arbeitsverzeichnis exportiert haben, können wir sehr einfach mit Hilfe des Befehls „Zurücksetzen“ (Revert) auf den aktuellen Stand des Versionsservers zurückgreifen.
Hier werden uns alle Dateien angeboten, die seit der letzten Aktualisierung in unserem Arbeitsverzeichnis verändert wurden. Konkurierende ÄnderungenIm Normalfall sollten die Arbeiten innerhalb eines Teams so aufgeteilt sein, dass sich zwei Entwickler nicht in die Quere kommen.
Um diesen Konflikt zu lösen, müssen wir zuerst einmal den aktuellen Stand des Repository mittels „Update“ vom Server abholen.
Dabei werden wir auf den Konflikt hingewiesen und können ihn im einfachsten Fall auch direkt im Dialog lösen.
Falls wir z.B. wissen, dass unsere Änderungen nicht von Belang sind, können wir hier mit „Resolve conflict using ‚theirs’“ die Änderungen des anderen Entwicklers einfach übernehmen – unsere eigenen Änderungen werden dabei verworfen.
oder
wobei wir dabei noch entscheiden können, in welcher Reihenfolge einzelne Zeilen übernommen werden. Merge vs. LockingEine grundlegende Frage spaltet im Prinzip die Anwender von Versionskontrollsystemen in zwei Lager: SVN vs. VSS & Co.Zum Schluß noch einige Merkmale, die für den Einsatz von SVN sprechen:
Bei Fragen oder Anregungen zu diesem Tutorial stehe ich wie immer gerne mit Rat und Tat zur Seite! |