Wiki source for VersionsKontrolle


Show raw source

=====Versionskontrolle / Versionsmanagement / Versionsverwaltung=====

==a==Funktionsumfang von Versionsverwaltungssystemen==a==

~-Protokollierung von Änderungen an Dateien
~-Archivierung von Versionen (Releases) eines Projektes bestehend aus mehreren zusammenhängenden Dateien
~-Wiederherstellung von alten Ständen einzelner Dateien oder ganzer Projekte
~-Koordinierung des gemeinsamen Zugriffs von mehreren Autoren oder Entwicklern auf Dateien
~-[[Konfigurationsmanagement]]


==a==Versionsverwaltungssystemen==a==

~-[[LinuxCvs CVS]] ist stark verbreitet. Direkte Unterstützung von [[IntegratedDevelopmentEnvironment Eclipse]]
~-[[SubVersion SVN]] bringt mehr mit im Vergleich zum Vorgänger CVS. Vor allem das Verschieben von Verzeichnissen ist jetzt möglich ohne die vorherigen Versionen der betroffenen Dateien zu verlieren.
~-[[Wikipedia:Visual_SourceSafe Microsoft Visual SourceSafe]] ist kommerziell und man kann damit arbeiten
~-[[Wikipedia:Rational_ClearCase Rational ClearCase]]
~-[[Git]]

==a==Prinzip eines Versionsverwaltungssystems==a==

Versionsmanagement basiert meist auf einem Repository auf das meist mehrere User (Entwickler, Autoren) zugreifen. In dem Repository legen User geänderte Dateien ab oder laden sich Dateien mit bestimmten Versionen vom Repository. Das Repository ist meist ein Server, der über ein Netzwerk erreichbar ist. Die User greifen über Clients auf das Repository zu. Ein Versionsverwaltungssystems besteht also aus einem Server, der Zugriff auf ein Repository anbietet und mindestens einem Client, der auf das Repository zugreift.


==a==Aktionen==a==

Die grundlegenden Aktionen bei der Arbeit mit einer Versionsverwaltung.

**Add**
Hinzufügen einer Datei zum Repository. Damit wird die Datei im Repository bekannt gemacht.

**Commit**
Die lokale Version wird in das Repository übertragen. Neuere Dateien werden im Repository nicht überschrieben.

**Update**
Die lokale Version wird aktualisiert. Falls erforderlich werden aktuelle Dateien aus dem Repository geholt. Neuere Dateien werden lokal nicht überschrieben.

**Tag**
Damit wird ein Bündel aus Dateien unter einer Versionsnummer - einem Tag - gesichert.

**Lock**
Damit können Dateien gesperrt werden, damit andere sehen, dass man an diesen Dateien arbeitet.


==a==Konventionen==a==

~-[[http://www.codinghorror.com/blog/archives/001165.html Check in early and often]]
~-Mit anderen in Kontakt bleiben. Kommunikation über Telefon, E-Mail, Treffen etc.
~-Sicherer Ablauf einer Änderung bei der Entwicklung in einem Team: 1. Update, 2. Lock, 3. Änderungen durchführen, 4. Check in
~-Man sollte es vermeiden, generierte (exe, dll, moc, ...) oder zu große Dateien unter Versionskontrolle zu nehmen. Auf der anderen Seite, wenn Sicherheit eine große Rolle spielt geht man leiber auf Nummer sicher, so wie es in Hunt2003 auf S. 80 empfohlen wird.


==a==Merge==a==

- WinMerge
- Meld (Linux)

----
Siehe auch {{backlinks}}
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki