PBUGG 2009, A. Schmidt
Folie 1
PowerBuilder & SVN
PowerBuilder und SVN
Erste Schritte bei der Versionsverwaltung von
Softwareprojekten mit Subversion (SVN)
PBUGG 2009, A. Schmidt
Folie 2
PowerBuilder & SVN
PowerBuilder und SVN• Agenda
– Einrichten eines einfachen SVN Servers– Projekt/Verzeichnisstrukturen vorbereiten– Projekt in die Versionsverwaltung aufnehmen– PowerBuilder SVN Integration– Explorer SVN Integration– Zusätzliche Tools– Kleine Fallen und Herausforderungen
PBUGG 2009, A. Schmidt
Folie 3
PowerBuilder & SVN
Versionsverwaltung - Wie• Wie kann man "Versionieren"
– Gar nicht– Per Xcopy / Zip und anderem– PowerBuilder Native– Mit Hilfe eines Tools zur Versionsverwaltung:
• Microsoft Visual Source Safe, Concurrent Version System (CVS), Borland StarTeam, Perforce (SCM - Software Configuration Management), IBM Rational ClearCase ...
• Subversion (SVN)
PBUGG 2009, A. Schmidt
Folie 4
PowerBuilder & SVN
Versionsverwaltung - Warum• 'Control' für alle Beteiligten:
– Kontrolle über durchgeführte Änderungen
– Sicherheit, dass alles sauber 'archiviert' ist
– Sicherheit: Wer hat Was Wann (Wo) geändert.
– Bei mehr als einem Entwickler bereits sinnvolles Werkzeug zum gemeinsamen Synchronisieren
– Zentrale Datenhaltung
PBUGG 2009, A. Schmidt
Folie 5
PowerBuilder & SVN
Subversion (SVN)• Subversion (SVN)
– Existiert seit 2000– CollabNet, Inc., Brisbane, CA – Open-Source-Software – Versionsverwaltung
• für Dateien und Verzeichnisse– Plattformen:
• Windows, Mac OS, Linux, Unix, Solaris u.a.
Tigris.orgOpen Source Software Engineering Tools
Simplify, Collaborate, Innovate
PBUGG 2009, A. Schmidt
Folie 6
PowerBuilder & SVN
SVN - Client / Server
• Server– Verwaltet ein zentrales
Archiv (Repository)– Verfügt über ein einfaches
Zugriffs-/ Benutzerkonzept• Client
– Zugriff auf das Repository– Verwaltet lokale
Arbeitskopien
• Kommunikation über TCP/IP - Port 3690 (Standard)
PBUGG 2009, A. Schmidt
Folie 7
PowerBuilder & SVN
SVN - Server Setup• Download über www.trigris.org (z.B. svn-win32-1.5.6.zip)• Unzip in ein Verzeichnis, z.B unter c:\program\svn• Erzeugen eines Repositories mittels:
bin\svnadmin create c:\data\svn_repository• Konfigurieren des Repositories
– Anpassen der Zugriffsrechte in der Datei conf\svnserve.conf– Einrichten von Benutzern in der Datei conf\passwd
• Start des Servers per: bin\svnserve -d -r c:\data\svn_repository
• Einrichten als Windows Service:– sc create svnserver binpath= "c:\program\svn\bin\svnserve.exe --
service -r c:\data\svn_repository" displayname= "Subversion" depend= Tcpip start= auto
– Start/Stop: sc start svnserver / sc stop svnserver
PBUGG 2009, A. Schmidt
Folie 8
PowerBuilder & SVN
SVN - Client Software• SVN Client
– Kommandozeile• Tortoise SVN ['tor-təs]
– Windows Explorer Integration• PushOK SVN Proxy
– Microsoft Source Code Control Interface (MSCCI) Implementierung
• Subclipse– Eclipse Integration (Sybase
Workspace)• AnkhSVN
– Visual Studio Integration per SharpSvn
PBUGG 2009, A. Schmidt
Folie 9
PowerBuilder & SVN
Tortoise SVN• Explorer Integration
– Checkout – Update– Add / Remove– Commit– Lock / Unlock uvm.
• Repository Browser• Log Viewer• Revision Graph• Diff- / Merge-Tool• Blame ;-)
PBUGG 2009, A. Schmidt
Folie 10
PowerBuilder & SVN
SVN - Projekt vorbereiten• Erzeugen einer Projekt Struktur im Repository
– Projektname• trunk • tags• branches
• Zwei Möglichkeiten1. Remote per Tortoise Repo-Browser (sehr einfach)2. Import einer "Template"-Verzeichnishierarchie per
Tortoise (noch einfacher)
PBUGG 2009, A. Schmidt
Folie 11
PowerBuilder & SVN
PowerBuilder - SVN• Vorbereiten PowerBuilder
Verzeichnisstruktur (Empfehlungen)– Workspace-Datei (pbw) sollte
im Root-Verzeichnis des Projekts stehen.
– Je PBL ein Unterverzeichnis– Resource-Files und sonstige
Verzeichnisse strukturieren.• SVN Checkout
– Checkout des trunk gegen das Root-Verzeichnis per Tortoise.
• Projectname• Workspace.pbw• main
main.pbl target.pbt
• ClassesClasses.pbl
• ResourcesPic1.gifApp.ico
PBUGG 2009, A. Schmidt
Folie 12
PowerBuilder & SVN
Tortoise - SVN Checkout
1. Root-Verzeichnis auswählen und "SVN Checkout ..."
2. Als SVN URL den 'trunk' des Projektes angeben
3. Yes!
4. Icon Overlays+.svn Verzeichnis
PBUGG 2009, A. Schmidt
Folie 13
PowerBuilder & SVN
PowerBuilder - SVN SCC ProxySVN URL: svn://localhost/pbtutorSVN Module: trunkAchtung: Darstellung des 'trunk' als
'Project' Name.
PBUGG 2009, A. Schmidt
Folie 14
PowerBuilder & SVN
PowerBuilder - SCC MenusPowerBuilder Integration
– Add / Remove– Check In – Check Out– Undo Check Out– Diff– Show History– Refresh Status
Plug-In Konfiguration– SVN URL Konfiguration
Workspace Properties
PBUGG 2009, A. Schmidt
Folie 15
PowerBuilder & SVN
PB - Add to Source Control• Target und Objekte per
"Add to Source Control" via PowerBuilder hinzufügen.
• Neue pbg-Datei !
PBUGG 2009, A. Schmidt
Folie 16
PowerBuilder & SVN
Tortoise - Add to Source Control• Andere Dateien und
Verzeichnisse via Tortoise hinzufügen (Add + Commit).
• Keine PBLs , pbc , opt oder sonstige unbekannten Dateien versionieren! ! !
PBUGG 2009, A. Schmidt
Folie 17
PowerBuilder & SVN
PowerBuilder SCC vs. SVNPowerBuilder Tortoise SVN Beschreibung
Add to Source Control
Add + Commit Lokales Objekt dem Repository hinzufügen
Remove from Source Control
Delete + Commit Objektverweis aus Repository entfernen
Check Out (Update) + (Get Lock)
Objekt aus Repository in den lokalen Arbeitsbereich kopieren und ggf. Sperre setzen
Undo Check Out
(Update ) Revert + (Release Lock)
Ursprüngliche Kopie aus dem Repository im lokalen Arbeitsbereich wiederherstellen
Check In Commit Änderungen des lokalen Arbeitsbereiches in das Repository übernehmen
Get Latest Version
(Update) Lokalen Arbeitsbereich mit Änderungen aus dem Repository aktualisieren
PBUGG 2009, A. Schmidt
Folie 18
PowerBuilder & SVN
Externe Diff / Merge - Tools• Einbinden externer Tools via
– PushOK SVN Proxy Properties– Tortoise Settings
• Tools– WinMerge (http://winmerge.org/)– PB Delta (http://www.pbdr)
PBUGG 2009, A. Schmidt
Folie 19
PowerBuilder & SVN
Aufsetzen eines Developer Seats• SVN Checkout per Tortoise SVN• Bootstrapping
– Orcascript– PowerGen (www.ecrane.com)– PowerBatch (www.sqlbatch.com)
• Workspace + SCC Properties einrichten – Auch eine Workspace-Datei (pbw) kann unter
Source Control gelegt werden.
PBUGG 2009, A. Schmidt
Folie 20
PowerBuilder & SVN
SVN - Herausforderungen I a• Verschieben von Objekten in PowerBuilder
– Verschieben aus abc.pbl in def.pbl• Verschieben des Objekts per Drag 'n' Drop im
Tortoise Repo-Browser (sofern PBLs in unterschiedlichen Verzeichnissen stehen).
• Editieren der abc.pbg und def.pbg und Commit der Änderungen.
• Anschließend GetLatest Version auf betroffene PBLs.
• Objekt ist nun in def.pbl und befindet sich auch noch in abc.pbl - ist dort jedoch nicht mehr unter Source Control.
• Objekt kann nun in abc.pbl gelöscht werden.
PBUGG 2009, A. Schmidt
Folie 21
PowerBuilder & SVN
SVN - Herausforderungen I b
Achtung!Zeile nicht
einfach nur kopieren,
sondern auf den Pfad und
ggf. PBL Name achten!
Editieren von PBG-Dateien
PBUGG 2009, A. Schmidt
Folie 22
PowerBuilder & SVN
SVN - Herausforderungen II• Wenn der Server offline ist ...
– PushOK SVN Proxy Properties lassen sich so einstellen, dass auch Offline
• Check Out• Undo Check Out
möglich sind.• Wenn der Server wieder online ist...
– PushOK SVN Proxy Properties umstellen• Check In
PBUGG 2009, A. Schmidt
Folie 23
PowerBuilder & SVN
SVN - Unser tägliches Brot– Check Out und auch Undo Check Out ;-)– Check In
• Ja ... aber wann?– Get Latest Version und Update
• Ja... aber wann?• Wann erfolgt ein 'Check In' bzw. 'Commit'?
– Size matters!• Größe des Teams• Komplexität der Software (Seiteneffekte)• Anzahl möglicher Varianten• Anzahl gleichzeitig zu betreuender Releases