Home
Über
Projekte
 CVS
 Contributors
 Online
 Download
 RCS
 Texinfo
 Texi2HTML
Geschichte
Werkzeuge
Unterstützung
 
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 Was CVS nicht ist?

CVS kann eine Menge Dinge für Sie tun, aber CVS versucht nicht alles für jeden zu tun.

CVS ist kein Build System.

Die Struktur Ihres Repositorys und ihrer Module Datei sind mit Ihrem Build System verknüpft (bspw. `Makefile's), sind aber essentiell unabhängig voneinander.

CVS schreibt Ihnen nicht vor, wie Sie etwas Erstellen. Es speichert lediglich Dateien zur Wiederherstellung einer Baum Struktur die Sie vorgeben.

CVS schreibt Ihnen nicht vor, wie Sie Ihren Plattenplatz in ausgecheckten Verzeichnis verwenden. Wenn Sie Ihre `Makefile's oder Scripte in jedem Verzeichnis schreiben, so müssen diese die relative Position zu allem anderen kennen, das kann dazu führen, daß Sie das vollständige Repository auschecken müssen.

Wenn Sie Ihre Arbeit modularisieren, und ein Build--System erzeugen, das Dateien shared (via links, mounts, VPATH in `Makefile's, etc.) so können Sie Ihre Plattenbenutzung so arrangieren wie Sie es möchten.

Sie sollten aber daran denken, daß jedes System in dieser Art, einen Haufen Arbeit bei der Erstellung verursacht und auch die Pflege. CVS ist nicht für dieser Art von Aufgaben konzipiert worden, die im Zusammenhang damit entstehen.

Selbstverständlich, sollten Sie solche Tools die zur Unterstützung eines Build--System erzeugt wurden (Scripte, `Makefile's, etc. ) unter die Kontrolle von CVS stellen.

Um heraus zu finden, ob Dateien neu erstellt werden müssen wenn sich etwas ändert, ist etwas das ausserhalb von CVS gehandhabt werden muß. Ein traditioneller Ansatz ist, daß zur Erstellung make verwendet wird und ein automatisiertes Tools, um die Abhängigkeiten zu erstellen, die make verwendet.

Sehen Sie unter 14. How your build system interacts with CVS nach, um weitere Informationen bezüglich der Erzeugung in Verbindung mit CVS zu erhalten.

CVS ist kein Ersatz für Management

Von Ihren Managern und Projekt--Leitern wird erwartet, daß mit Ihnen häufig genug ein Austausch stattfindet damit sichergestellt ist, daß Ihnen Abläufe, Zusammenführungspunkte, Verzeigungen in der Entwicklung und Release Daten bekannt sind. Wenn das nicht gemacht wird, kann Ihnen CVS auch nicht helfen.

CVS ist ein Instrument, damit die Quellen nach Ihrer Pfeife tanzen. Aber Sie sind der Pfeifer und Komponist. Kein Instrument spielt von selbst oder schreibt seine eigene Musik.

CVS ist kein Ersatz für Entwickler Kommunikation

Wenn Entwickler mit Konflikten innhalb einer Datei konfrontiert werden, dann wird das unter den Entwicklern gelöst ohne großes Aufheben. Aber eine mehr allgemeine Definition von Konflikten beinhaltet Probleme, welche zu komplex sind um sie ohne eine Kommunikation der Entwickler unter einander zu lösen.

CVS ist nicht in der Lage festzustellen, ob innerhalb einer Datei oder über eine Kollektion von Dateien gleichzeitig veränderungen vorgenommen werden, die sich logisch widersprechen. Das Konzept des Konfliktes (conflict) ist rein textualer natur, die auftritt, wenn zwei Änderungen an der gleichen Datei so nah einander sind, daß das Mergen (i.e. diff3) verhindert wird.

CVS ist nicht in der Lage Konflikte im Bereich non-textualen oder in verteilten Konflikten der Programmlogik zu helfen.

Beispielsweise sagen wir, Sie ändern die Argumente der Funktion X, die in der Datei `A' definiert ist. Zur gleichen Zeit editiert jemand die Datei `B' und fügt einen neuen Aufruf der Funktion X hinzu, unter Verwendung der alten Argumente. Das ist außerhalb der Kompentenz von CVS.

Hat jemand eine gute Idee, wie man das hier übersetzt: Gewöhnen Sie sich an, Spezifikationen zu lesen und mit Ihren Kollegen zu reden.

CVS hat keine change control(1)

Change control kann vieles bedeuten. Es kann zuerst einmal bug-tracking heißen, einen Datenbestand zu haben, in dem gefundene Fehler festgehalten werden und der Zustand eines jeden (Ist der Fehler schon behoben? In welcher Release war er? War der, der den Fehler gemeldet hat, damit einverstanden ihn als erledigt zu kennzeichnen?). Um nun CVS zur zusammenarbeit mit einem externen bug-tracking System zu ermöglichen sollten Sie sich `rcsinfo' und die `verifymsg' Datei ansehen ( C. Reference manual for Administrative files).

Ein anderer Aspekt von change control ist die Möglichkeit, das Änderungen an vielen Dateien tatsächlich im Zusammenhang mit einer logischen Änderung stehen und als solche nachvollziehbar sein sollten. Wenn Sie mehrere Dateien durch ein einziges cvs commit einchecken, vergisst CVS danach, daß diese Dateien gemeinsam eingecheckt wurden. Die Tatsache, daß die Dateien die gleiche Log Nachricht haben, ist der einzige Hinweis auf diesen Zusammenhang. Wenn Sie eine GNU `ChangeLog' Datei führen, kann Ihnen das in dieser Situation ein wenig helfen.

Ein anderen Aspekt von change control in einigen Systemen ist die Möglichkeit den Zustand einer jeden Änderung festzuhalten. Einige Änderungen wurden durch den Entwickler gemacht andere wurden durch weitere Überprüfungen eines anderen Entwicklers durchgeführt und so weiter. Die allgemeine Vorgehensweise mit CVS ist die der Erzeugung eines diffs (unter Verwendung von cvs diff bzw. diff) und die Versendung via email an jemand anderen. Das ist eine sehr flexible Methode, liegt aber außerhalb der Verantwortung von CVS und muß durch entsprechende Methoden vereinbart werden.

CVS ist kein automatisches Testprogramm

Es sollte möglich sein, ... It should be possible to enforce mandatory use of a testsuite using the `commitinfo' file. I haven't heard a lot about projects trying to do that or whether there are subtle gotchas, however.

CVS hat kein integriertes Vorgehensmodell

Einige Systeme bieten Möglichkeiten, um sicherzustellen, daß Änderungen oder Releases bestimmten Prüfungen unterzogen werden.

Some systems provide ways to ensure that changes or releases go through various steps, with various approvals as needed. Generally, one can accomplish this with CVS but it might be a little more work. In some cases you'll want to use the `commitinfo', `loginfo', `rcsinfo', or `verifymsg' files, to require that certain steps be performed before cvs will allow a checkin. Also consider whether features such as branches and tags can be used to perform tasks such as doing work in a development tree and then merging certain changes over to a stable tree only once they have been proven.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Sun Aug 26 19:43:32 UTC 2001 © 1999, 2000, 2001 by Manual Translation Project webmaster@manual-translation-project.org