37
Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

Embed Size (px)

Citation preview

Page 1: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

Christoph Menken,

Sourceverwaltung und PowerBuilder

Christoph MenkenPower People

Page 2: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 2/37

Christoph Menken,

Fahrplan

• Warum Versions Kontrolle?• PB Native• SCC Anforderungen • Die SCC API• SCC-Architektur in PB 8/9• Visual Source Safe• PowerGen• Fragen

Page 3: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 3/37

Christoph Menken,

Warum Versionskontrolle?

• Mehrere Entwickler arbeiten an den selben Quellen

• Kompilierte Versionen und ausgelieferte Versionen müssen zum Zweck des Rollback archiviert werden

• Viele Objekte, Dateien und Pibble sind zu verwalten

• Zusätzliche Arbeit• Versionsmanagement kann in

einen Full-Time-Job ausarten• Ein Entwickler ist kein Bibliothekar

Page 4: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 4/37

Christoph Menken,

PB Native

• Verhindert konkurrierende Zugriffe• Zentrale Sourcen auf einem

Serverlaufwerk• Lokale Arbeitskopie• Möglichkeit des Offline-Arbeitens

Page 5: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 5/37

Christoph Menken,

SCC Anforderungen

• Sicherer Aufbewahrungsort (Repository) für beliebige digitale Dokumente

• Versionskontrolle über Objekt/Datei Revision

• Sperren und Verzweigen (Locking & Branching)

• Verfolgbarkeit (Traceability) der Änderungen

• Timetravel (Zeitreise)• Integriertes

Änderungsmanagement und Fehlernachverfolgung

Page 6: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 6/37

Christoph Menken,

Die SCC API

Innerhalb der SCC Repository

• Projekt • Verzeichnisse und

Unterverzeichnisse• Archive

– Jede Änderung wird mit einer speziellen Versionsnummer versehen

– Viele SCC Tools verwenden “Delta” oder “Reverse Delta” Dateiformate.

d_ph.srd

myApp

SRC

d_mc.src

setup.txt

DOC

Page 7: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 7/37

Christoph Menken,

Die SCC API

SCC Terminologie

• Server Konfiguration (Server Configuration)

• Projekt (Project) • Sicht (View)• Ordner (Folder)• Archive• Labels• Arbeitsordner (Working Folder)

Page 8: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 8/37

Christoph Menken,

Die SCC API

Source Code

Lebenszyklus

Datei ADatei BDatei CDatei DDatei EDatei F

Revision Labels, applied to specific sets of changed objectsView Labels, applied to ALL objects associated to the View

Änderungsmarkierungen (Revision Labels), sind bestimmten Mengen geänderter Objekte zugeordnetSichtmarkierungen (View Labels), sind ALLEN mit der Sicht verbundenen Objekten zugeordnet

Page 9: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 9/37

Christoph Menken,

Die SCC API

• SCC ist eine Industrie-Standard API die von den meisten Anbietern von Sourceverwaltungssystemen unterstützt wird

• SCC API unterstützt:– Präzise Status Informationen der

Repository-Archive– Unterverzeichnis in der

Änderungshierarchie– Operationen um mehrere Objekte mit

einer API Anfrage zu bearbeiten

Page 10: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 10/37

Christoph Menken,

Die SCC API

weitere Terminologi

e

• Local Project Path: der lokale Projektpfad auf dem lokalen Rechner in dem die PB IDE die exportierten Source Dateien verwaltet.– Hier muss der aktuelle „Workspace“

liegen (*.pbw) – Dieser Pfad ist für alle „Targets“ gleich

• SCC Working Folder: Der Arbeitsordner, wo das SCC Werkzeug die Arbeitskopien der entsprechenden Objekte/Dateien ablegt.– Das SCC Werkzeug verwendet diesen

Ordner wenn dessen Userinterface mit Archiven arbeitet.

– Jede/r SCC Sicht/Ordner kann einen anderen Arbeitsordner verwenden.

ACHTUNG: Dies MUSS NICHT derselbe Pfad sein!

Page 11: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 11/37

Christoph Menken,

Die SCC API

Powerbuilder spezifisch

• EXPORT der Quellen vor– SccAdd() “Hinzufügen zur

Source Control”

– SccCheckin() “Einchecken”– SccDiff() “Unterscheide

vergleichen”

• IMPORT der Quellen nach– SccCheckout() “Auschecken”– SccGet() “Hole die letzte

Version”– SccUncheckout() “Auschecken

rückgängig machen”

Page 12: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 12/37

Christoph Menken,

Die SCC API

Beispiel „Checkout“

• PB exportiert Kopien der Objekte als Backup (für ein evtl. Rollback)

• PB ruft SccCheckout() auf. Das SCC Tool schreibt die letzte Version in den lokalen Projekt Pfad

• PB ruft SccQueryInfo() auf um sicherzustellen, dass das Objekt erfolgreich ausgecheckt wurde

• PB importiert die Objekte in die entsprechende Pibble

• PB aktualisiert den Status Cache und aktualisiert die IDE

• PB commited die Transaktion & löscht die Backup-Dateien

Page 13: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 13/37

Christoph Menken,

Die SCC API

Beispiel „Checkin“

• PB exportiert die Syntax der einzuchekenden Objekte in den lokalen Projekt Pfad

• PB ruft SccCheckIn() auf. Das SCC Tool aktualisiert die Revisionshistorie in den Archiven gibt die Datei wieder frei

• PB ruft SccQueryInfo() um das erfolgreiche Einchecken zu überprüfen

• PB aktualisiert den Status Cache und aktualisiert die IDE

Page 14: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 14/37

Christoph Menken,

SCC-Architektur

Änderungen in PB8

• SCC Status Information wurden aus der Pibble genommen– Beseitigt den Bedarf gemeinsam

genutzter Pibbles im Netzwerk– Mit SccQueryInfo() können Status

Information eingeholt werden• Neue Icons in der IDE

– Es gibt jetzt den “Out-of-Sync” Status• Neuer “Offline Mode” • SCC Operationen können über

gesamte Targets durchgeführt werden

• Unterstützt Verzeichnis-Hierarchien und Unterprojekte

• Beseitigt die “work” Pibble

Page 15: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 15/37

Christoph Menken,

SCC-Architektur

Änderungen in PB8

• SCC Verbindung wurde eine Workspace Eigenschaft

• Unterstützt Source Verwaltung für Web Targets

• Erlaubt SCC Operationen über gesamte Targets

• Neuer “CheckView” Dialog• Neue PBW, PBT, PBG, und

PBC Dateien• Ersetzt “Old” PBNative mit

einem SCC Anbieter

Page 16: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 16/37

Christoph Menken,

SCC-Architektur Keine

gemeinsamen Pibbles im Netz

• Privater Arbeitsbereich für jeden Entwickler– Keine Datei-Locking

Probleme beim Ausführen oder Debuggen von Applikationen

– “Offline” arbeiten ist jetzt möglich

• Reduziert Dateizugriffe im Netz– Status Informationen für

Objekte eines Arbeitsbereichs werden nun in einer Hash-Tabelle im Speicher gehalten

Page 17: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 17/37

Christoph Menken,

SCC-Architektur SCC Status nicht in der

PBL

• Status Information in der PBL waren unzuverlässig

• Registrierung von PBL erforderte einen Zugriff auf ein Netzlaufwerk und mussten zwischen den Team Mitgliedern verteilt werde– Verursacht Dateizugriffs Probleme

beim Starten und Debuggen der Applikation

– Uneffiziente Dateizugriffe im Netzwerk um Status Information einzuholen

– „Offline“ Arbeiten erforderte einen privaten Arbeitsbereich auf einem lokalen Laufwerk

Page 18: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 18/37

Christoph Menken,

SCC-Architektur SccQueryInfo()

• Ermittelt verlässliche Status Informationen direkt vom SCC Provider

• Status Cache wird nach Bedarf gefüllt– Performance Auswirkungen werden in

einem zukünftigen Release adressiert• Status Cache wird in einer Hash-

Tabelle im Speicher gehalten– Sofortzugriff auf Informationen– Konfigurierbare Auffrischrate– Optionale Eigenschaft findet lokale,

„Out-of-Synch“ Objekte sind– Stellt serienmäßig den Status Cache

beim schließen des Arbeitsbereichs her (.PBC file)

– Offline Mode verwendet die „.PBC“-Datei für die letzten Status Infos

Page 19: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 19/37

Christoph Menken,

SCC-Architektur

Keine “work.pbl”

• “Überflüssiges” Überbleibsel des alten PBNative Denkmusters– Status Informationen werden nicht

länger in den Pibblen gehalten– Jeder Entwickler hat jetzt seinen

eigenen Arbeitsbereich• Überflüssig für SCC Operationen• Einfaches Ein- und Auschecken

– Beseitigt 4 Schritte zum erfolgreichen Auschecken

– Beseitigt 8 Schritte zum erfolgreichen Einchecken

– Erheblich einfacheres Rollback

Page 20: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 20/37

Christoph Menken,

SCC-Architektur in PB 8/9

Icons der PB 8.0 IDE

Icon Bedeutung

+ Objekt befindet sich Lokal und nicht in der Sourceverwaltung

. Objekt befindet sich in der Source Verwaltung und ist von niemand ausgecheckt

Objekt ist vom aktuellen Anwender ausgecheckt

Objekt ist von einem anderen Anwender ausgecheckt

@ Lokales Objekt ist mit dem Server-Objekt nicht synchron

Page 21: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 21/37

Christoph Menken,

SCC-Architektur

“Offline” Modus

• Großartig für Entwickler mit Notebooks

• Außerordentlich Effizient• Erhält Status Information vom

Status Cache (.PBC file) welcher beim letzten Verlassen des Arbeitsbereichs gebildet wird

• Ermöglicht das offline Editieren von ausgecheckten Objekten

• Verwendet Read-only Attribute für nicht ausgecheckte Objekten

Page 22: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 22/37

Christoph Menken,

SCC-Architektur

Operationen auf mehreren Objekten

• Hinzufügen mehrerer Objekte mit einem SCC API Aufruf– Schneller und effizienter– “Erweiterte” Attribute auf alle

Objekte anwendbar

• Objekts aus mehreren Pibble in einem Target auschecken– In PB 7.0 nicht möglich– Kompilation in drei

Durchgängen / Import löst wechselseitige Abhängigkeiten auf

Page 23: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 23/37

Christoph Menken,

SCC-Architektur

Verzeichnis-hierarchien

• Unbedingt Erforderlich für Web Targets

• Erlaubt PB Entwickler Objekte in Unterverzeichnissen auf der lokalen Workstation und Archiv Laufwerken zu organisieren– Logische Anordnung von Objekten – Erlaubt Objekte mit gleichen

Namen in unterschiedlichen Archivverzeichnissen

Page 24: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 24/37

Christoph Menken,

SCC-Architektur

SCC Verbindung als Workspace Eigenschaft

• In PB 7.0. war die SCC Verbindung eine Eigenschaft der Applikation

• In PB 8.0 werden Applikationen als Targets betrachtet. Es können mehrere Targets gleichzeitig in einem Workspace bearbeitet werden– Die SCC Verbindung kann während des

Wechsel zwischen zwei Targets innerhalb eines Workspace gehalten werden

– Verschiedene Targets können sich Pibble in einem Workspace teilen

• Die SCC Verbindungsinformationen werden in der Windows Registry gespeichert. Dies erfordert keine .CFG Dateien und PB.INI Einträge mehr– HKCU\Software\Sybase\PowerBuilder\

8.0\Workspace\workspace_name\SourceControl

Page 25: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 25/37

Christoph Menken,

SCC-Architektur

Workspace Properties Source Control Tab

Neue Verbindungs-Eigenschaften

Page 26: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 26/37

Christoph Menken,

SCC-Architektur

Web Targets unter Source

Control

• PB 8.0 unterstützt Source Verwaltung für Web Targets

• PB Targets und Web Targets können zusammen in einem Workspace unter Source Verwaltung existieren

• Alle Web Target Verzeichnisse müssen im lokalen Projekt Pfad existieren

Page 27: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 27/37

Christoph Menken,

SCC-Architektur

Target-Wide SCC Operations

• Mit PB 8.0 können SCC Operationen für ein gesamtes Target durchgeführt werden– Rechter Mausklick auf das Target

Icon– “Get Latest Version” zur

Synchronisation das lokale Target mit dem SCC Provider

– Auswahl: “Select Multiple Files Contained Within this Target”

– Der CheckView Dialog selektiert automatisch alle Objekte, die entweder lokal nicht existieren oder nicht synchron sind

– Kompilation in drei Durchgängen / Import löst wechselseitige Abhängigkeiten auf

Page 28: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 28/37

Christoph Menken,

SCC-Architektur

SCC-relevante Dateien

• *.PBW Workspace• *.PBT Target • *.PBG Objektbeschreibung

einer Pibble• *.PBC Offline Status

Cache• *.PRP Used by PBNative

Nur PBT und PBG Dateien werden in der Source Verwaltung registriert

Page 29: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 29/37

Christoph Menken,

SCC-Architektur

PBNative als SCC Provider

• Das alte PBNative wurde entsprechend der PB 8.0 SCC Anforderungen ersetzt

• Das neue PBNative fungiert als SCC Provider– Anstelle einer registrierten Pibble

wird nun eine Verzeichnishierarchie auf einem Netzlaufwerk verwendet

– Verwendet *.PRP Dateien im Archivverzeichnis um den „Checkout“ Status zu protokollieren

– Nur die letzte Revision wird im Archivverzeichnis gespeichert

– Keine Revisionshistorie– SccDiff() kann verwendet werden

Page 30: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 30/37

Christoph Menken,

SCC-Architektur

Visual Diff Konfiguration unter PBNative

Mögliche Visual Diff Tools:• PBDelta• Perforce P4diff.exe• Microsoft Windiff.exe (Visual Studio Tools)

Page 31: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 31/37

Christoph Menken,

Verzeichnis-hierarchie

• Alle Targets eines Workspace, die unter Sourceverwaltung sind, müssen auf dem selben Laufwerk bleiben

• Am Besten legt man den Workspace (*.PBW) in den lokalen Projekt Pfad. Alle Targets (*.PBT) und Objekte die zu den entsprechenden Targets gehören sollten in Unterverzeichnissen des lokalen Projekt Pfads liegen.

Page 32: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 32/37

Christoph Menken,

Aufsetzen der SCC

Integration in PB8

• Alle Targets unter Sourceverwaltung in einem Workspace müssen auf dem gleichen Laufwerk liegen.

• Der Workspace (*.PBW) muss im lokalen Projektpfad liegen.

• Alle Targets (*.PBT) und Objekte die mit jedem Target verbunden sind sollten in Unterverzeichnissen des lokalen Projekt Pfads liegen.

• Die PB Objekte werden zunächst von einer Workstation registriert und dann wird die komplette Verzeichnisstruktur auf jede weitere Maschine kopiert.

• Für Web Targets wird der “File > New > Target > Source Controlled Web Target” Assistent verwendet.

Page 33: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 33/37

Christoph Menken,

Tips & Hinweise

• Wenn Speicherplatz kein Problem ist, sollte “Delete PowerBuilder-generated Object Files” nicht aktiviert sein– “Perform DIFF on status update” wird

schneller ausgeführt– Das SCC Tool meldet nicht den

Objekt Status “Missing”

• Nicht die “Select All”-Schaltfläche im “Get Latest Version”-Dialog verwenden

• Einige wichtige 3rd-party Werkzeuge:– PowerGen - www.ecrane.com – PBDelta- www.pbdr.com

Page 34: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 34/37

Christoph Menken,

PB9 Erweiterungen

• SCC Operationen können auf Pibble Ebene durchgeführt werden

• Abfrage „… exists in the local project path. Press OK to overwrite …“ kann unterdrückt werden

• Erweiterter „Checklist“-Dialog• Erweiterte SCC Historie• Erweiterte Status Ermittlung• Erweiterte PBNative Konfiguration• Erweiterung des List View im

Library Painter• 3 SCC Protokollierungslevel

Page 35: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 35/37

Christoph Menken,

Visual Source Safe

• Volle Unterstützung der SCC API

• Problemlose Integration in PB8/9

• Userverwaltung mit unterschiedlichen Rechtestufen

• Objectsharing zwischen verschiedenen Projekten

• Labeling, VisualDiff, History

Page 36: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 36/37

Christoph Menken,

PowerGen

• Optimize• Regenerate• Create Exe, PBD‘s, DLL‘s• Build• Export• Source Control Integration

Page 37: Christoph Menken, Sourceverwaltung und PowerBuilder Christoph Menken Power People

PBUGG-TreffenFreiburg 27.10.2003

Sourceverwaltung und PowerBuilder

Folie 37/37

Christoph Menken,

Kontakt

Sind noch Fragen offen?

Bei Rückfragen oder Anregungen bitte an:

Christoph Menken

Power PeopleInh. Ludwin Feiten

Am Borsigturm 50

D-13507 Berlin

fon +49 (0)30 43032350fax +49 (0)30 43032355

http://www.powerpeople.de

mailto:[email protected]