Subversion: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 20: | Zeile 20: | ||
Eine Revision ist ein atomarer Zustand des [[#Repository|Repositorys]], | Eine Revision ist ein atomarer Zustand des [[#Repository|Repositorys]], | ||
Dabei ist jeder [[Subversion#Working Copy commiten|Commit]] eines Benutzers | Dabei ist jeder [[Subversion#Working Copy commiten|Commit]] eines Benutzers, | ||
=== Repository === | === Repository === | ||
Das ''Repository'' ist der zentrale Verzeichnisbaum, in dem sich alle unter Versionsverwaltung stehenden Dateien befinden. Das Repository kann alle Änderungen, die jemals an diesen Dateien oder Verzeichnissen vorgenommen wurden | Das ''Repository'' ist der zentrale Verzeichnisbaum, in dem sich alle unter Versionsverwaltung stehenden Dateien befinden. Das Repository kann alle Änderungen, die jemals an diesen Dateien oder Verzeichnissen vorgenommen wurden | ||
Zeile 29: | Zeile 30: | ||
Die ''Working Copy'' (Arbeitskopie) ist ein Verzeichnis, das auf dem Rechner des Benutzers liegt und durch einen [[#Projekt auschecken|Checkout]] des [[#Repository|Repositorys]] angelegt wurde. Es enthält eine [[#Revision|Revision]] des [[#Repository|Repositorys]] zusammen mit den Änderungen, die der Benutzer daran vorgenommen hat. Diese Änderungen können durch einen [[#Working Copy commiten|Commit]] mit dem zentralen [[#Repository|Repository]] synchronisiert werden. | Die ''Working Copy'' (Arbeitskopie) ist ein Verzeichnis, das auf dem Rechner des Benutzers liegt und durch einen [[#Projekt auschecken|Checkout]] des [[#Repository|Repositorys]] angelegt wurde. Es enthält eine [[#Revision|Revision]] des [[#Repository|Repositorys]] zusammen mit den Änderungen, die der Benutzer daran vorgenommen hat. Diese Änderungen können durch einen [[#Working Copy commiten|Commit]] mit dem zentralen [[#Repository|Repository]] synchronisiert werden. | ||
Die Working Copy kann durch ein [[#Working Copy updaten|Update]] auf den neuesten Stand (d.h. die neueste [[#Revision|Revision]]) gebracht werden. Dabei können [[#Conflicts|Konflikte]] entstehen. | |||
Die Working Copy kann auch lokale Änderungen seit der letzen Synchronisation mit [[#Revert|Revert]] rückgängig machen. Das funktioniert nicht nur für die gesamte Working Copy, sondern auch für jede einzelne Datei in ihr. | |||
Mit Checkout und Update kann die Working Copy auch gezielt auf den Stand einer speziellen [[#Revision|Revision]] gebracht werden. | |||
== Arbeiten mit Subversion == | == Arbeiten mit Subversion == | ||
Zeile 37: | Zeile 42: | ||
=== Working Copy updaten === | === Working Copy updaten === | ||
=== Working Copy commiten === | === Working Copy commiten === | ||
=== Revert === | |||
=== Diff === | === Diff === | ||
=== Conflicts === | === Conflicts === |
Version vom 2. Mai 2009, 14:35 Uhr
Subversion (kurz: SVN) ist ein Versionsverwaltungssystem. Es wird verwendet um
- Änderungen am Projekt zu protokollieren,
- ältere Versionen wiederherzustellen,
- das Projekt zu archivieren,
- gemeinsames Arbeiten auf der selben Datenbasis zu ermöglichen,
- kurz: es ermöglicht mehreren Entwicklern komfortabler an einem Projekt gemeinsam und gleichzeitig zu arbeiten.
Wir verwenden Subversion im Sopra um genau diese Punkte zu ermöglichen. Jede Gruppe erhält ihr eigenes Repository und hoffentlich (unsere Admins arbeiten daran) auch ein Trac, um ihr Projekt zu verwalten.
Subversion besitzt eine Client-Server-Architektur, sodass man einen beliebigen Subversion-Client verwenden kann. Grundsätzlich besteht eine Versionsverwaltung mit Subversion aus
- einem Repository auf einem zentralen Server, das alle Revisionen des Projekts enthält und
- vielen Working Copies auf den Computern der Entwickler, die jeweils nur eine Revision des Projekts zusammen mit den lokalen Änderungen des Entwicklers darstellen.
zentrale Begriffe
Revision
Eine Revision ist ein atomarer Zustand des Repositorys,
Dabei ist jeder Commit eines Benutzers,
Repository
Das Repository ist der zentrale Verzeichnisbaum, in dem sich alle unter Versionsverwaltung stehenden Dateien befinden. Das Repository kann alle Änderungen, die jemals an diesen Dateien oder Verzeichnissen vorgenommen wurden
- rückgängig machen,
- nachvollziehen (d.h. angeben, welcher Autor welche Änderung durchgeführt hat).
Working Copy
Die Working Copy (Arbeitskopie) ist ein Verzeichnis, das auf dem Rechner des Benutzers liegt und durch einen Checkout des Repositorys angelegt wurde. Es enthält eine Revision des Repositorys zusammen mit den Änderungen, die der Benutzer daran vorgenommen hat. Diese Änderungen können durch einen Commit mit dem zentralen Repository synchronisiert werden.
Die Working Copy kann durch ein Update auf den neuesten Stand (d.h. die neueste Revision) gebracht werden. Dabei können Konflikte entstehen.
Die Working Copy kann auch lokale Änderungen seit der letzen Synchronisation mit Revert rückgängig machen. Das funktioniert nicht nur für die gesamte Working Copy, sondern auch für jede einzelne Datei in ihr.
Mit Checkout und Update kann die Working Copy auch gezielt auf den Stand einer speziellen Revision gebracht werden.
Arbeiten mit Subversion
Projekt importieren
Projekt auschecken
Working Copy bearbeiten
Working Copy updaten
Working Copy commiten
Revert
Diff
Conflicts
Blame
History
Browse
Clients
Für die Entwicklung unter Windows haben wir gute Erfahrungen mit den zwei nachfolgenden Clients[1] gemacht. Wir empfehlen den Einsatz von beiden Clients gleichzeitg, da sie beide je nach aktueller Aufgabe gewisse, substantielle Vor- bzw. Nachteile aufweisen.
TortoiseSVN
TortoiseSVN ist ein Open-Source Subversion-Client für Windows, der sich in den Explorer integriert. Dieser Client besitzt im Gegensatz zu AnkhSVN eine sehr gute Unterstützung für die Auflösung von Konflikten in Form des (mitinstallierten) Programms TortoiseMerge.
Da TortoiseSVN eine exzellente Dokumentation besitzt, werden wir hier nicht auf die Bedinung und Installation eingehen. Bei Bedarf empfehlen wir die folgenden Links (die Handbücher sind sehr umfangreich, daher geben wir die Kapitel mit den für euch relevanten Informationen zusätzlich an):
- deutsches Handbuch (html) für TortoiseSVN. Die wesentlichen Informationen finden sich in
- deutsches Handbuch (html) für TortoiseMerge. Die wesentlichen Informationen finden sich in
- offizielle Website des TortoiseSVN-Projekts
- offizielle Support-Seite des TortoiseSVN-Projekts
AnkhSVN
AnkhSVN ist ein Open-Source Subversion-Client für Windows der sich direkt in Visual Studio integriert. Der große Vorteil dieses Clients besteht in eben dieser Integration, da man dadurch
- neu angelegte Dateien automatisch zum Repository hinzufügt (und somit nicht mehr vergisst),
- Dateien die gelöscht wurden nicht mehr zusätzlich im Repository löschen muss,
- direkt weiß, welche Dateien sich geändert haben,
- komfortabel Dateien verschieben kann (mittels Drag and Drop in der IDE,
- die IDE nur noch in Ausnahmefällen verlassen muss.
Leider liefert AnkhSVN im Gegensatz zu TortoiseSVN kein "vernünftiges" Programm zum Editieren von Konflikten mit, sodaß wir lieber beide Programme gemeinsam benutzen. Auch für AnkhSVN gehen wir nicht weiter auf Bedienung und Installation ein, sondern verweisen auf die folgenden Seiten:
siehe auch
Referenzen
- ↑ für eine vollständigere Liste siehe Wikipedias Vergleich verschiedener SVN-Clients
Links
- Subversion auf Wikipedia
- Das Subversion Buch