• Keine Ergebnisse gefunden

Praktische Software-Entwicklung:

N/A
N/A
Protected

Academic year: 2022

Aktie "Praktische Software-Entwicklung:"

Copied!
19
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

Uberblick¨

Praktische Software-Entwicklung:

Versionsverwaltung mit dem Concurrent Versions System

Institut f ¨ur Informatik Mustererkennung und Bioinformatik

Angewandte Bildverarbeitung, SS 2007

(2)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

Uberblick¨

Uberblick ¨

1 Versionskontroll - Wozu das?

2 Umgang mit dem CVS

3 Mehrere Nutzer und Konflikte

4 Repository und Sandbox

5 Strategien

6 Projektumgebung

(3)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository Strategien Projekt- Umgebung

Versionskontroll - Wozu das?

Scenario:

(viele) Dateien in einem Verzeichnis werden ¨uber l ¨angere Zeit immer mal wieder bearbeitet. . .

. . . Welches ist die aktuelle Version?

. . . Warum l ¨auft der Code pl ¨otzlich nicht mehr?!

. . . Was wurde zuletzt ge ¨andert? Wer war das?!

. . . Wo ist die Sicherungskopie?!

Aufgaben einer Versionskontrolle:

Dateien sichern Anderungen tracken ¨

Anderungen mehrerer Nutzer konsistent halten ¨ Software:

CVS - Concurrent Versions System Subversion

. . .

(4)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository Strategien Projekt- Umgebung

Das Concurrent Versions System (CVS)

Grundideen:

CVS Verwaltet Dateien in einem zentralen Repository jeder Nutzer hat eine eigene Kopie der Files (Sandbox), die er beliebig ver ¨andern kann

man kann jederzeit:

jede Version einer Datei zur ¨uckbekommen (!)

Anderungen zwischen beliebigen Versionen ansehen ¨ herausfinden, welcher Nutzer welche ¨ Anderung gemacht hat (und Kommentare dazu ansehen) Anderungen in seinen Dateien ins Repository ¨ einchecken

Anderungen anderer Nutzer aus dem Repository holen ¨

(5)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository Strategien Projekt- Umgebung

Das Concurrent Versions System (CVS)

das CVS verwaltet Module, die unabh ¨angig voneinander sind

jedes Modul besteht aus einer Verzeichnisstruktur jede Datei (und jedes Verzeichnis) eines Moduls erh ¨alt jeweils eine Versionsnummer (Revision)

⇒ Aktualisierung beim Einchecken (oder manuell) Dateien k ¨onnen jederzeit. . .

neu hinzugef ¨ugt werden

entfernt werden (Archivkopie bleibt erhalten!) verschoben werden

mit Verzeichnissen ist das etwas schwieriger. . .

(6)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS

Konflikte Repository Strategien Projekt- Umgebung

Sandboxes

Annahme: irgendwo gibt es ein Repository Sandbox aus Repository auschecken:

cvs -d ’cvsroot’ co ’module’ | ’directory’

jedes Verzeichnis der Sandbox enth ¨alt ein Unterverzeichnis CVS mit wichtigen Daten (z.B. Ort des Repositories)

⇒ Pfad nur beim ersten Checkout angeben eine neue Datei zum Repository hinzuf ¨ugen:

cvs add ’filename’

Anderungen einchecken: ¨

cvs commit -m "Kommentar" ’filename’

Unterschiede anzeigen:

cvs diff ’filename’

(7)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS

Konflikte Repository Strategien Projekt- Umgebung

>cvs−d /tmp/bspcvsroot co Prj/bspProjekt

Prj / cvs checkout: Updating Prj/bspProjekt |−−CVS

U Prj /bspProjekt/ file1 ‘−−bspProjekt

cvs checkout: Updating Prj/bspProjekt/unterverzeichnis |−−CVS ...

U Prj /bspProjekt/unterverzeichnis/ file2 |−−file1

‘−−unterverzeichnis

|−−CVS ...

‘−−file2

>cvs add file3

cvs add: scheduling file ‘ file3 ’ for addition cvs add: use ’cvs commit’ to add this file permanently

>cvs commit−m ”mein 3. tolles file”

cvs commit: Examining .

cvs commit: Examining unterverzeichnis RCS file : / tmp/bspcvsroot/Prj/bspProjekt/ file3 ,v done

Checking in file3 ;

/tmp/bspcvsroot/Prj/bspProjekt/ file3 ,v <−−file3 initial revision : 1.1

done

(8)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS

Konflikte Repository Strategien Projekt- Umgebung

file3 bei commit:

Test File3

danach aendern zu:

Dies ist Test File3

>cvs diff file3 Index: file3

===================================================================

RCS file : / tmp/bspcvsroot/Prj/bspProjekt/ file3 ,v retrieving revision 1.1

diff−r1.1 file3 0a1

>Dies ist

(9)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS

Konflikte Repository Strategien Projekt- Umgebung

Anderungen ¨ubernehmen ¨

Ge ¨anderte Dateien im Repository anzeigen (-n = nichts ver ¨andern):

cvs -n update Anderungen aus Repository ¨ubernehmen: ¨

cvs update ’filename’

(10)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte

Repository Strategien Projekt- Umgebung

>cvs−n update

| file1 von jemand anderem geaendert von cvs update: Updating . | Das hier ist flasch geschrieben!

U file1 |

M file2 |zu

cvs update: Updating unterverzeichnis | Das hier ist richtig geschrieben!

>cvs update file1

| file1 danach:

U file1 | Das hier ist richtig geschrieben!

(11)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte

Repository Strategien Projekt- Umgebung

Mehrere Nutzer und Konflikte

Konflikte entstehen (nur), wenn mehrere Nutzer an denselben Stellen ¨andern

”winner-takes-all”-Prinzip:

nur der erste kann seine Daten einchecken (commit) wurde eine Datei im Repository ge ¨andert,

muss erst die Sanbox auf den neuesten

Stand gebracht werden (update)

(12)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte

Repository Strategien Projekt- Umgebung

file3 : |Aenderung von Nutzer1 eingecheckt:|Aenderung von Nutzer2:

1 Hier wird |1 Hier wird |1 Hier wird

2 ein Konflikt |2 ein von Nutzer1 Konflikt |2 ein Konflikt

3 produziert |3 produziert |3 produziert

|4 von Nutzer2

Nutzer2>cvs update cvs update: Updating .

RCS file : / tmp/bspcvsroot/Prj/bspProjekt/ file3 ,v retrieving revision 1.1

retrieving revision 1.2

Merging differences between 1.1 and 1.2 into file3 M file3

cvs update: Updating unterverzeichnis

file3 von Nutzer2 danach:

1 Hier wird

2 ein von Nutzer1 Konflikt 3 produziert

4 von Nutzer2

(13)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository

Strategien Projekt- Umgebung

Neue Aenderung von Nutzer1 | Aenderung, von Nutzer2 eingecheckt:

1 Hier wird | 1 Hier wird

2 ein von Nutzer1 Konflikt | 2 ein von Nutzer1 Konflikt 3 produziert von Nutzer1 | 3 produziert von Nutzer2

| 4 von Nutzer2 Nutzer1>cvs update

cvs update: Updating .

RCS file : / tmp/bspcvsroot/Prj/bspProjekt/ file3 ,v retrieving revision 1.2

retrieving revision 1.3

Merging differences between 1.2 and 1.3 into file3 rcsmerge: warning: conflicts during merge cvs update: conflicts found in file3 C file3

cvs update: Updating unterverzeichnis file3 von Nutzer1 danach: KONFLIKT!

1 Hier wird

2 ein von Nutzer1 Konflikt

<<<<<<<file3 3 produziert von Nutzer1

=======

3 produziert von Nutzer2 4 von Nutzer2

>>>>>>>1.3

(14)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository

Strategien Projekt- Umgebung

Repositories & Sandboxes

Repository:

CVS speichert hier die Dateien und Zusatzdaten beliebig viele anlegbar

(auch auf anderen Rechnern im Netz) wird normalerweise nie(!) direkt bearbeitet jedes Verzeichnis einer Sandbox

enth ¨alt ein Verzeichnis CVS mit Verwaltungsdateien geh ¨ort zu genau einem Repository

(Pfad steht in CVS/Root) Anlegen von Repositories:

cvs -d ’cvsroot’ init

⇒ legt in cvsroot ein Verzeichnis CVSROOT an

mit administrativen Dateien an

(15)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository

Strategien Projekt- Umgebung

Repositories & Sandboxes

Import einer Dateistruktur:

cvs -d ’cvsroot’ import

-m’’Kommentar’’ dir vendor-tag release-tag

(16)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository Strategien Projekt- Umgebung

>cvs−d /tmp/bspcvsroot import−m ”Import des Beispiels” Prj/bspProjekt autor initial N Prj /bspProjekt/ file1

cvs import : Importing / tmp/bspcvsroot/Prj/bspProjekt/unterverzeichnis N Prj /bspProjekt/unterverzeichnis/ file2

No conflicts created by this import

(17)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository Strategien Projekt- Umgebung

Daten im CVS

in ein CVS darf fast alles:

Text-Dateien, Programmcode, Bilder . . . Was ist im CVS gut aufgehoben?

Dateien, die direkt ver ¨andert werden

Dateien, die nicht automatisch generiert werden Was geh ¨ort nicht in ein CVS?

grosse Menge statischer Daten (z.B. Testbilder) Programmdateien, Objektfiles

lokale Daten, die f ¨ur ein Projekt nicht relevant sind

(18)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository Strategien Projekt- Umgebung

Niemals. . .

. . . die CVS-Verzeichnisse direkt bearbeiten!

. . . die CVS-Verzeichnisse in der Sandbox l ¨oschen!

. . . das CVS-Repository verschieben!

(19)

Praktische Software- Entwicklung:

Versionsver- waltung mit

CVS

CVS - Wozu?

Umgang mit CVS Konflikte Repository Strategien Projekt- Umgebung

CVS in dieser Veranstaltung

zentrales Projektverzeichnis:

auf den Rechnern der AG:

sol:/vol/export/angewandteBV SS07/project/CVSROOT

im Pool:

/lehre/agprbio/angewandteBV SS07/project/CVSROOT

externer Zugriff per ssh:

cvs -d

login@sol.informatik.uni-halle.de:/vol/export/...

Referenzen

ÄHNLICHE DOKUMENTE

• Versionsnummer bezieht sich auf Repository (nicht auf einzelne Dateien) in Sandbox sind Dateien verschiedener Revisionen gestattet..

Diese Anforderungen müssen für agile und nicht-agile Vorgehensmodelle formal unterschiedlich in der Prozessgestaltung umgesetzt werden.. Über die Umsetzung der so

Kontrastiert wird dieser Ansatz zu anderen Bewertungsmethoden, unter anderem ATAM und SAAM, insbesondere werden deren Probleme bei der praktischen Umsetzung dargestellt.

Aus diesem Grund führen wir eine computergestützte Telefonbefragung in möglichst vielen Erstsprachen der Nutzer*innen durch.. Zu diesem Zweck rekrutierten wir erfolgreich

• Jeder Nutzer kann nun Änderungen in seinen Files ins Repository einchecken.. Das File erhält dabei jeweils eine neue

samkeit aus. Zum einen wird durch das Recycling vermieden, dass wertvolle Rohstoffe wie Gold weiter mit hohen Kosten für die Umwelt abgebaut werden müs- sen. Stattdessen wird

MAS also seeks comments on whether there are other activities regulated by MAS that could be suitable for the Sandbox Express, and if so, what would be the

Indem auf eine detail- lierte Darstellung wissenschaftlicher Theorien und empirischer Befunde weitgehend verzichtet wird, soll Lesen kann man lernen auch Leserinnen und