Mit der SourceControl arbeiten

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Versionsverwaltung

Dieses Thema gibt einen Überblick über die allgemeinen Konzepte der Versionskontrolle, die für eine Reihe von Versionskontrollsystemen gelten, die auch unter der Bezeichnung "Automatisiertes System zur Verwaltung von Änderungen und Softwarekonfigurationen" (SCM) bekannt sind.

Hinweis: Appmethod enthält mehrere Versionskontrollsysteme:

Grundlagen der SourceControl

Jedes SourceControl-System besteht aus einem oder mehreren zentralen Repositories und einigen Clients. Ein Repository ist eine Datenbank, die nicht nur die aktuellen Datendateien enthält, sondern auch die Struktur der einzelnen Projekte.

Die meisten SourceControl-Systeme bedienen sich des Konzepts eines logischen Projekts, d. h. eines Projekts, in dem die Dateien in einer oder mehreren Verzeichnisstrukturen gespeichert sind. Ein SourceControl-System kann ein oder mehrere Appmethod-Projekte sowie weitere Dokumente und Zubehördateien enthalten. Diese Systeme sehen gelegentlich eine eigene Benutzerauthentifizierung vor, verwenden aber häufig auch die bereits im Betriebssystem angelegte Authentifizierungsmethode. Dadurch wird es dem SourceControl-System möglich, ein Protokoll oder eine Momentaufnahme der Aktualisierung jeder einzelnen Datei festzuhalten. Diese Momentaufnahmen werden häufig als Diffs (Differenzen) bezeichnet. Wenn nur die Differenzen gespeichert werden, kann das SourceControl-System alle Änderungen mit nur minimalen Speicheranforderungen protokollieren. Sobald Sie eine komplette Kopie einer dieser Dateien ansehen möchten, führt das System eine Zusammenführung der Differenzen durch und zeigt das komplette Ergebnis an. Diese Differenzen werden zunächst in verschiedenen Dateien gespeichert, bis Sie eine Zusammenführung der Aktualisierungen veranlassen. Dazu können Sie die Aktion Übergeben ausführen.

Dieser Ansatz ermöglicht es Ihnen und anderen Teammitgliedern, parallel und gleichzeitig an mehreren gemeinsamen Projekten zu arbeiten, ohne dass der Quelltext eines Mitglieds von einem anderen überschrieben werden kann. Die SourceControl-Systeme verhindern im Wesentlichen Codekonflikte und einen eventuellen Verlust älteren Quelltextes. Die meisten SourceControl-Systeme enthalten Tools zur Verwaltung der Quelltextdateien mit der Möglichkeit des Ein- oder Auscheckens von Dateien, zur Konfliktlösung und zur Berichtserstellung. Funktionen zur logischen Konfliktlösung oder zum Build-Management sind jedoch in den meisten Systemen nicht vorgesehen. Genauere Informationen zu den einzelnen SourceControl-Systemen finden Sie in den Dokumentationen zu den Produkten der verschiedenen Hersteller.

Im Allgemeinen bieten SourceControl-Systeme nur die Möglichkeit, verschiedene Versionen textbasierter Dateien (z. B. Quelltext-, HTML- und XML-Dateien) zu vergleichen und zusammenzuführen. Bei einigen SourceControl-Systemen können zusätzlich Binärdateien in die Projekte in der SourceControl eingefügt werden. Sie können die Versionen der Binärdateien jedoch nicht vergleichen oder zusammenführen. Wenn Sie nicht nur bestimmte Versionen dieser Dateien speichern und abrufen möchten, sollten Sie ein manuelles Protokollsystem für Änderungen in Binärdateien in Betracht ziehen.

Grundlagen des Repository

SourceControl-Systeme speichern die Kopien von Quelltextdateien und Differenzdateien in einem Datenbankarchiv, das als Repository bezeichnet wird. In einigen Systemen, wie zum Beispiel CVS oder VSS, ist das Repository eine logische Struktur, die aus linearen Dateien und Steuerungsdateien besteht. In anderen Systemen sind die Repositories Instanzen eines bestimmten Datenbankmanagementsystems (DBMS), zum Beispiel von InterBase, Microsoft Access, MS SQL Server, IBM DB2 oder Oracle.

Die Repositories sind üblicherweise auf einem externen Server gespeichert, damit mehrere Benutzer gleichzeitig eine Verbindung dazu herstellen, Dateien ein- oder auschecken und andere Verwaltungsaufgaben ausführen können. Sie müssen sicherstellen, dass Ihre Verbindung nicht nur zum Server, sondern auch zu der betreffenden Datenbankinstanz besteht. Halten Sie mit den zuständigen Netzwerk-, System- oder Datenbankverwaltern Rücksprache, um sicherzustellen, dass Ihr Computer mit den erforderlichen Treibern und der notwendigen Verbindungs-Software sowie der SourceControl-Software für den Client ausgestattet ist.

Bei einigen SourceControl-Systemen lässt sich ein lokales Repository erstellen, in dem Sie die Momentaufnahme Ihrer Projekte auf Ihrem System aufbewahren können. Mit zunehmender Bearbeitung wird sich das lokale Abbild Ihrer Projekte vom Inhalt des Repositories auf dem externen Server immer mehr unterscheiden. Sie können Regeln zum Zusammenführen und für die Übergabe Ihrer Änderungen vom lokalen Repository an das externe Repository einrichten.

Im Allgemeinen ist es jedoch nicht zu empfehlen, jedes Mitglied eines Teams mit einem eigenen Repository für ein gemeinsames Projekt auszustatten. Wenn Sie aber an ganz getrennten Projekten arbeiten, und die Versionskontrolle für all diese Projekte lokal an einem Computer durchgeführt werden soll, kann es sinnvoll sein, mit einzelnen lokalen Repositories zu arbeiten. Sie können auch mehrere Repositories auf einem externen Server einrichten, wodurch eine zentralisierte Unterstützung, Sicherung und Verwaltung gewährleistet ist.

Mit Projekten arbeiten

Die SourceControl-Systeme verwenden, ähnlich wie die Entwicklungsumgebungen, das Konzept des Projekts, um Gruppen zusammengehörender Dateien zu verwalten bzw. deren Status zu protokollieren. In allen SourceControl-Systemen wird ein Projekt erstellt, das die Dateidefinitionen und die zugehörigen Speicherpositionen enthält. Sie können auch Projekte in Appmethod erstellen, um die verschiedenen Assemblies und Quelltextdateien für eine bestimmte Anwendung zu organisieren. Appmethod speichert die Projektparameter in einer Projektdatei. Sie können auch diese Datei zusätzlich zu den verschiedenen Quelltextdateien im SourceControl-System speichern. Dies ist sinnvoll, wenn Sie die Projektdatei gemeinsam mit anderen Programmierern im Team verwenden möchten, oder wenn jedes Teammitglied eine eigene Projektdatei unterhalten soll.

Die meisten SourceControl-Systeme interpretieren die Projektdateien aus den Entwicklungsumgebungen als Binärdatei und zwar unabhängig davon, ob sie es tatsächlich sind oder nicht. Daher werden beim Einchecken einer Projektdatei in das Repository eines SourceControl-Systems ältere Versionen der Datei durch neuere Versionen überschrieben, ohne dass eine Zusammenführung der Änderungen versucht wird. Dies gilt auch für das Abrufen eines Projekts oder Auschecken der Projektdatei. Die ältere Version wird ohne Zusammenführung durch die neuere Dateiversion überschrieben.

Mit Dateien arbeiten

In der Objekthierarchie stellen Dateien die unterste Ebene dar, die sich in einem SourceControl-System verwalten lässt. Jeder Quelltext, der in der SourceControl überwacht werden soll, muss in einer Datei enthalten sein. Die meisten SourceControl-Systeme speichern Dateien in Form einer logischen, hierarchischen Struktur. In einigen Systemen, zum Beispiel CVS, werden Begriffe wie Verzweigung verwendet, um Verzeichnisebenen zu benennen. Sie können Dateien in einem Appmethod-Projekt erstellen und diese dann in das SourceControl-Projekt einfügen oder bereits vorhandene Dateien aus dem SourceControl-Projekt übernehmen. Ein gesamtes Verzeichnis kann in das SourceControl-System gestellt werden, aus dem sich dann einzelne Dateien, mehrere Dateien oder ganze Unterverzeichnisse auschecken lassen. In Appmethod kontrollieren Sie Ihre Dateien auf zwei Ebenen: auf der Projektebene in Appmethod und durch das Interface zwischen Appmethod und dem SourceControl-System auch im jeweiligen SourceControl-System selbst.

Hinweis: Im Fenster Historie werden Versionsinformationen zu den lokalen Quelltextdateien angezeigt. Sie können das Fenster Historie verwenden, um während der Bearbeitung der Dateien im Designer oder Quelltext-Editor die Änderungen zu überprüfen.

Siehe auch