Software Configuration Management (SCM)



Ähnliche Dokumente
Versionsverwaltung mit SVN

Wie benutzt man TortoiseSVN

Kurzanleitung zu. von Daniel Jettka

Software Engineering in der Praxis

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Updatehinweise für die Version forma 5.5.5

Einführung in Subversion

SJ OFFICE - Update 3.0

Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

OP-LOG

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Sourcecodeverwaltung

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

ecaros2 - Accountmanager

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Einfu hrung in Subversion mit TortoiseSVN

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Einleitung: Frontend Backend

Anleitung für Zugriff auf den LEM-FTP-Server

Zur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:

Benutzerverwaltung mit Zugriffsrechteverwaltung (optional)

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Was meinen die Leute eigentlich mit: Grexit?

Online-Dateienablage und Datenaustauschdienst Box.net Stand: September 2011

ANLEITUNG NETZEWERK INSTALATION

Anwendungsbeispiele Buchhaltung

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Schritt-für-Schritt-Anleitung So verschlüsseln Sie Ihr -Konto in Outlook 2003

Benutzerverwaltung Business- & Company-Paket

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Dokumentation: Selbstregistrierung

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Verwendung des IDS Backup Systems unter Windows 2000

Anleitung für die Hausverwaltung

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

1 Einleitung. Lernziele. Dokumente vergleichen. Änderungen mit Überarbeitungsfenster bearbeiten Lerndauer. 4 Minuten.

Kleines Handbuch zur Fotogalerie der Pixel AG

Quickstep Server Update

Schritt 1 - Registrierung und Anmeldung

ARCO Software - Anleitung zur Umstellung der MWSt

HSR git und subversion HowTo

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

DOKUMENTATION VOGELZUCHT 2015 PLUS

Kurzeinführung Excel2App. Version 1.0.0

Der neue persönliche Bereich/die CommSy-Leiste

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

Fotostammtisch-Schaumburg

Anleitung. Update/Aktualisierung EBV Einzelplatz. und Mängelkatalog

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Arbeiten mit dem Outlook Add-In

8. Dokumentenverwaltung mit CVS eine Einführung

Installation von Updates

FTP-Server einrichten mit automatischem Datenupload für

Serviceanweisung Austausch Globalsign Ausstellerzertifikate

Einrichten eines Exchange-Kontos mit Thunderbird

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Checkliste Installation. Novaline Bautec.One

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

CL-Mini-ABF. Kurzbeschreibung. Installation und Vorbereitung. Stand Ihre HTK-Filiale Michelstadt

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

Arbeiten mit Workflows Installationsleitfaden Zur Installation des d3 Workflows

NetVoip Installationsanleitung für Fritzbox Fon5050

Leichte-Sprache-Bilder

Mediumwechsel - VR-NetWorld Software

Arbeiten mit MozBackup

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Anleitung. Update EBV 5.0 EBV Mehrplatz nach Andockprozess

Kundeninformation PDF-Erzeugung in Adobe Illustrator, Adobe InDesign und QuarkXPress Datenprüfung und Datenübergabe

Um sich zu registrieren, öffnen Sie die Internetseite und wählen Sie dort rechts oben

Print2CAD 2017, 8th Generation. Netzwerkversionen

1. Handhabung Werkzeug- und Menüleiste

How to do? Projekte - Zeiterfassung

Handbuch ZfEditor Stand

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Problem crazytrickler unter Windows 8:

OSF Integrator für Btracking und Salesforce Anleitung für die Nutzer

Mediumwechsel - VR-NetWorld Software

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Installationsanleitung für Magento-Module

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

SharePoint Demonstration

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Internet online Update (Internet Explorer)

Drägerware.ZMS/FLORIX Hessen

Firmware-Update, CAPI Update

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

Kostenstellen verwalten. Tipps & Tricks

Transkript:

Software Configuration Management () und n Einzelarbeit Namensgebung und Nummerierung Anleitung

: Problemsituationen beim Arbeiten im Team Mehrere Entwickler ändern die gleichen Klassen Die Weiterentwicklung einer funktionierenden Version geht schief "Das hat aber schon mal funktioniert..." "Gestern ging es noch, seitdem haben wir nur... geändert!" typische Prüfungssituation! Andere Problemsituation Ein Kunde hat noch Änderungswünsche / Fehler in einer alten, längst weiterentwickelten Version, will aber nicht zu einer neueren wechseln Folie 1

Zwei Ziele des Software Configuration Management () Folie 2

Software Configuration Management heißt die Disziplin, die Konfiguration eines Systems zu bestimmten Zeitpunkten zu erfassen, um Änderungen daran systematisch und kontrolliert durchzuführen und die Integrität und die Nachvollziehbarkeit von Konfigurationen während der gesamten Lebensdauer sicherzustellen. A Project of the Software Engineering Coordinating Committee: Guide to the Software Engineering Body of Knowledge - SWEBOK. Version 1.00 (Trial Version) May 2001 (SWEBOK is an official service mark of the IEEE); www.swebok.org Folie 3

und n des 1/2 Ein Verzeichnis (Repository) enthält alle Versionen aller Dateien, die zu einem Programm gehören Verwaltet wird nicht nur Programmcode, sondern auch Anforderungsdokumente, Designdokumente, Benutzerdokumentation etc. Bei Bedarf auch Datenbank-Zustände! Folie 4

und n des 2/2 Restriktives Modell: SCCS, RCS,... Entwickler holen sich bestimmte Versionen von Dateien (check out) zum Lesen / Benutzen (beliebig viele Entwickler gleichzeitig) zum Schreiben (Verbessern, Ändern, Weiterentwickeln etc.): maximal ein Entwickler zu einem Zeitpunkt Geändert werden können nur Dateien, die zum Schreiben aus dem Repository geholt wurden (check in) Optimistisches Modell: CVS, Subversion (SVN),... Entwickler holen sich bestimmte Versionen von Dateien (check out / update) Geändert werden können alle Dateien (commit); Annahme: Es werden selten Konflikte zwischen Änderungen auftreten Geänderte Dateien werden nach korrektem Abschluss der Änderungen kommentiert mit neuer Versionsnummer wieder ins Repository gestellt (check in / commit) Folie 5

Konzept für das restriktive Modell: Dateien und Verzeichnisse Heinz Lokales Verzeichnis Binaries aller zuletzt freigegebenen Dokument-Versionen Quellen der aktuell von Heinz bearbeiteten Dokumente Repository: Alle Versionen aller Dateien Gerd Lokales Verzeichnis Kopie aller freigegebenen Versionen (Binaries) Quellen der aktuell von Gerd bearbeiteten Dokumente Hugo Lokales Verzeichnis Binaries aller zuletzt freigegebenen Dokument-Versionen Quellen der aktuell von Hugo bearbeiteten Dokumente Folie 6 Binaries: Im Fall von Java:.class-/.jar-Dateien Im Fall von z.b. C/C++:.o-Dateien

Konzept für das optimistische Modell: Dateien und Verzeichnisse Heinz Verzeichnis Quellen aller zuletzt freigegebenen Dokument-Versionen; Heinz darf alle bearbeiten Repository: Alle Versionen aller Dateien Gerd Verzeichnis Quellen aller zuletzt freigegebenen Dokument-Versionen; Gerd darf potenziell alle bearbeiten Hugo Verzeichnis Quellen aller zuletzt freigegebenen Dokument-Versionen; Hugo darf potenziell alle bearbeiten Folie 7

Konzept: Einzelarbeit Entwickler Code A: write, B, C: read Änderungen an A check out / update check in / commit (nur A nötig) Dokumentation der Änderung; neue Versionsnummer Folie 8 zeitlicher Verlauf

Konzept: Einzelarbeit, Rückgriff auf alte Version Entwickler Korrektur Weiterentwicklung zu V3 etc. check in check in check out von V1 check in von V1' check out von V2 Code V1, für Kunde X V2, für Kunde Y Reklamation von Kunde X zeitlicher Verlauf Folie 9

Namensgebung, Nummerierung 1/2: traditionelle Variante Oft gebrauchter Begriff: "Version", korrekte Bezeichnung: Revision Nummerierungsschema für Revisionen: 1.1, 1.2, 1.3,..., 2.1, 2.2,...; Unterscheidung Release-Nummer: die Stelle vor dem Punkt Level-Nummer: die Stelle nach dem Punkt Eine neue Release-Nummer bezeichnet eine neue Revision mit wesentlichen Änderungen/Erweiterungen, die z.b. an Kunden ausgeliefert wird Folie 10 R. 1.3 R. 1.4

Namensgebung, Nummerierung 2/2: traditionelle Variante Eine neue Release-Nummer bezeichnet eine neue Revision mit wesentlichen Änderungen/Erweiterungen, die z.b. an Kunden ausgeliefert wird Änderungen an früheren Revisionen/Releases können nicht nachträglich in den Code-Stamm übernommen werden Für sie wird (jeweils) ein neuer Ast parallel zum Stamm angelegt R. 1.3 R. 1.3.1.1 R. 1.3 R. 1.4 Code-Ast 1.3.1 R. 1.3.1.1... R. 1.3.1.2 Folie 11 Code-Ast 1.3.2

Namensgebung 1/2: mit Subversion Wir sprechen von Revisionen (nicht "Versionen") Anstelle von Nummern werden Namen (tags) verwendet, diese dürfen aber Nummern beinhalten... Subversion vergibt intern "globale" Release-Nummern: für alle Änderungen im Repository zu einem Zeitpunkt eine Nummer commit tag: voll lauffähig tag: GUI eingebaut Folie 12

Namensgebung 2/2: mit Subversion Ein tag (Kennzeichen) bezeichnet eine wichtige Revision, die z.b. an Kunden ausgeliefert wird Ein branch wird benutzt, um eine Revision weiterzuentwickeln Der trunk (Stamm) ist ein spezieller branch, für die hauptsächliche Entwicklung Ein Merge von branches und/oder trunk ist möglich commit commit branch: Kunde X commit nach branch: Kunde X tag: Kunde X tag: Kunde Y branch: Kunde X tag: 2005-11-10... Folie 13 branch: Kunde Z

Folie 14

Konzept:, restriktives Modell Karl Gustav A: write, B, C: read A, C: read, B: write check out for... Code Hugo A: read, B, C: write B: write Integrationsproblem: Änderungen an A passen nicht zu geändertem B / C zeitlicher Verlauf Folie 15

Konzept:, restriktives Modell Karl Gustav A: write, B, C: read A, C: read, B: write B, C: read Eventuelle A-Anpassung Code Hugo A: read, B, C: write B: write zeitlicher Verlauf Folie 16

Konzept:, optimistisches Modell Karl A, B, C: update Gustav Code A, B, C: update A, B, C: commit Hugo A, B, C: update A, B, C: commit zeitlicher Verlauf Folie 17

Konzept:, optimistisches Modell Karl A, B, C: update Gustav Code Hugo A, B, C: update A, B, C: update A, B, C: update A, B, C: commit A, C: integrieren B: merge A, B, C: commit A, B, C: commit Auch der merge kann schief gehen! (muss aber nicht: "optimistisch") zeitlicher Verlauf Folie 18

Konzept:, optimistisches Modell Karl A, B, C: update A, B, C: integrieren Gustav Code Hugo A, B, C: update A, B, C: update A, B, C: update A, B, C: commit A, C: integrieren B: merge A, B, C: update A, B, C: commit A, B, C: commit Auch der merge kann schief gehen! (muss aber nicht: "optimistisch") zeitlicher Verlauf Folie 19

Anleitung: idealer Workflow, optimistische Variante [Eclipse] 1. Machen Sie ein Update auf Ihren Workspace, bevor Sie mit irgendwelchen Arbeiten beginnen, um sich den aktuellen Zustand (des trunks/eines branches) zu holen 2. Arbeiten Sie (wie gewohnt) in Ihrem lokalen Workspace 3. Wenn Ihre Arbeit abgeschlossen ist a) Aktualisieren Sie Ihren Workspace mit Update, um sicherzustellen, dass zwischenzeitliche Änderungen anderer Projektmitarbeiter keinen Konflikt mit Ihren Arbeitsergebnissen verursachen Gibt es Konflikte, übernehmen Sie den fremden Code, wo möglich und (zusammen mit Ihren Änderungen) sinnvoll und lösen Sie die Konflikte Stellen Sie sicher, dass Ihr Code weiterhin korrekt funktioniert b) Stellen Sie Ihre Änderungen mit Commit ins Repository Wiederholen Sie vorher Schritt a), falls dieser sehr lange gedauert hat Folie 20

Folie 21

Anleitung: Vorbereitung 1/3 Das jeweilige Gruppenverzeichnis ist festgelegt: /rest/svn/seexy Folgende Rechte sollten gesetzt sein: Besitzer apache, Gruppe seexy Repository anlegen: Anmelden (ssh-client) auf jonathan.sv.fh-mannheim.de Der Befehl svnadmin create /rest/svn/seexy/<repository-name> erzeugt das Verzeichnis /rest/svn/seexy/<repository-name> mit Inhalt Als Besitzer des Verzeichnisses muss apache gesetzt sein: Es gibt bereits ein Verzeichnis "repo", das Sie bitte verwenden als <Repository-Name> einsetzen! Test per Browser, URL: http://jonathan.sv.fh-mannheim.de/svn-seexy/<repository-name> sollte zu folgender Passwort-Abfrage führen: Folie 22

Anleitung: Vorbereitung 2/3 Zugriff per Passwort erlauben: Passwort-Datei ist festgelegt: /rest/svn/seexy/.htpasswd Folgende Rechte müssen gesetzt sein: Besitzer apache, Gruppe seexy Immer noch auf jonathan: Eintragen von Benutzern inkl. Passwort ("b" für Batch): htpasswd -bm /rest/svn/seexy/.htpasswd <user1> <passwd> Eintragen von Benutzern mit expliziter Passwort-Abfrage: htpasswd -m /rest/svn/seexy/.htpasswd <user2> Der Benutzername ist beliebig, das Passwort sollte nicht gleich dem Unix-Passwort sein... Test per Browser, gleiche URL, Passwort eingeben: Folie 23

Anleitung: Vorbereitung 3/3 Repository in Eclipse bekannt machen Window Show View Other... SVN SVN Repository Neues Repository bekannt machen: Kontext-Menü New Repository Location... URL: http://jonathan.sv.fh-mannheim.de/svn-seexy/<repository-name> Verzeichnisse trunk, tags, branches anlegen: Nicht auf der Betriebssystem-Ebene, sondern in Eclipse im Repository-View: Kontext-Menü New New remote folder Das Passwort muss bei jedem Zugriff eingegeben werden In Eclipse speichern lassen! Deshalb nicht das Unix-Passwort wählen... Folie 24

Beispiel-Skript für eine Projekt mit Package und zwei Dateien anlegen, Projekt ins Repository Klasse Calc: Kreisflächenberechnung mit 3.14 Klasse Output: Flächenausgabe Tag "Kunde1" für die aktuelle Revision setzen Eine Datei überarbeiten, update, commit Beispielsweise Math.PI verwenden (statt 3.14) Beide Dateien weiterentwickeln, update, commit Beispielsweise in einer neuen Datei Umfang berechnen und ausgeben Tag "Kunde1" auschecken, in neuen Ast "Kunde1" wiedereinchecken, "verbessern", update PI verwenden Neue Datei für den Umfang in den Ast kopieren Neuste Revision auschecken, weiterbearbeiten, update, commit Folie 25

Anmerkung Verwenden Sie keine Dateien mit Namen, die sich nur durch Groß-/Kleinschreibung unterscheiden! Folie 26

Vollziehen Sie jeden Schritt der und der Folien zusammen mit ihren Gruppenpartnern nach Erklären Sie sich abwechselnd, was das nächste Kommando bewirken wird, welche Version danach im aktuellen Verzeichnis / im Repository vorliegt, ob diese Version editierbar ist, welche Ausgabe Eclipse beim Start (sofern möglich) liefern wird etc. Führen Sie dann erst das nächste Kommando aus! Überprüfen Sie die von Ihnen erwartete Wirkung nach jedem Schritt Bearbeiten Sie Dateien gleichzeitig und prüfen Sie das Systemverhalten beim update / commit Bleiben noch Fragen? Fragen Sie besser jetzt als im Projekt...! Folie 27