PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN) PBUGG 2009, A. Schmidt
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
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) PowerBuilder Native verwaltet keine Versionen - Es kann Immer nur auf die letzte Version zurückgegriffen werden PBUGG 2009, A. Schmidt
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 Zentrale Datenhaltung = Einfache Sicherung PBUGG 2009, A. Schmidt
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. Simplify, Collaborate, Innovate Tigris.org Open Source Software Engineering Tools PBUGG 2009, A. Schmidt
SVN - Client / Server Server Client 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
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
SVN - Client Software SVN Client Tortoise SVN ['tȯr-təs] Kommandozeile Tortoise SVN ['tȯr-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
Tortoise SVN Explorer Integration Repository Browser Log Viewer Checkout Update Add / Remove Commit Lock / Unlock uvm. Repository Browser Log Viewer Revision Graph Diff- / Merge-Tool Blame ;-) PBUGG 2009, A. Schmidt
SVN - Projekt vorbereiten Erzeugen einer Projekt Struktur im Repository Projektname trunk tags branches Zwei Möglichkeiten 1. Remote per Tortoise Repo-Browser (sehr einfach) 2. Import einer "Template"-Verzeichnishierarchie per Tortoise (noch einfacher) Trunk = Rumpf / Rüssel / Baumstamm Tag = Anhänger / Etikett / Klebezettel Branch = Ableger / Abzweig / Ast PBUGG 2009, A. Schmidt
PowerBuilder - SVN Projectname Workspace.pbw main main.pbl target.pbt Classes Classes.pbl Resources Pic1.gif App.ico 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. svn://localhost/pbtutor/trunk D:\asc\pb105\pbtutor PBUGG 2009, A. Schmidt
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
PowerBuilder - SVN SCC Proxy SVN URL: svn://localhost/pbtutor SVN Module: trunk Achtung: Darstellung des 'trunk' als 'Project' Name. PBUGG 2009, A. Schmidt
PowerBuilder - SCC Menus PowerBuilder 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
PB - Add to Source Control Target und Objekte per "Add to Source Control" via PowerBuilder hinzufügen. Neue pbg-Datei ! PBUGG 2009, A. Schmidt
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
PowerBuilder SCC vs. SVN 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
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
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. oder die Frage "Woher kommen eigentlich die PBLs" PBUGG 2009, A. Schmidt
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
SVN - Herausforderungen I b Editieren von PBG-Dateien Achtung! Zeile nicht einfach nur kopieren, sondern auf den Pfad und ggf. PBL Name achten! PBUGG 2009, A. Schmidt
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
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 PBUGG 2009, A. Schmidt