23
PBUGG 2009, A. Schmidt Folie 1 PowerBuilder & SVN PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

Embed Size (px)

Citation preview

Page 1: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

PBUGG 2009, A. Schmidt

Folie 1

PowerBuilder & SVN

PowerBuilder und SVN

Erste Schritte bei der Versionsverwaltung von

Softwareprojekten mit Subversion (SVN)

Page 2: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 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

Page 3: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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)

Page 4: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit 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

Page 5: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 6: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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)

Page 7: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 8: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 9: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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 ;-)

Page 10: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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)

Page 11: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 12: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 13: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

PBUGG 2009, A. Schmidt

Folie 13

PowerBuilder & SVN

PowerBuilder - SVN SCC ProxySVN URL: svn://localhost/pbtutorSVN Module: trunkAchtung: Darstellung des 'trunk' als

'Project' Name.

Page 14: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 15: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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 !

Page 16: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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! ! !

Page 17: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 18: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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)

Page 19: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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.

Page 20: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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.

Page 21: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 22: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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

Page 23: PowerBuilder & SVN PBUGG 2009, A. SchmidtFolie 1 PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN)

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