Mit Patches arbeiten
Mit Patches können Entwickler ihre Arbeit gemeinsam benutzen ohne sie in einem Repository zu speichern.
Dies ist nützlich, wenn ein Entwickler zu einem Projekt beitragen will, das über ein Repository gemeinsam
benutzt wird, er aber keinen Schreibzugriff für das Repository besitzt. In diesem Fall kann der Entwickler
einen Patch erstellen und diesen über E-Mail an einen Entwickler senden, der über Schreibzugriff verfügt oder
an einen Programmfehler im Berichtssystem für Programmfehler anhängen, das im Projekt verwendet wird. Diese
Entscheidung ist abhängig vom im Projekt definierten Prozess. Ein Entwickler mit Schreibzugriff kann den Patch
anschließend im Projekt anwenden und die Änderungen festschreiben.
So erstellen Sie einen Patch in einem CVS-Projekt:
- Wählen Sie die Ressource aus, die die Änderungen enthält, die im Patch enthalten sein sollen. Dies kann
jeder Ordner sein, doch es ist am einfachsten, das Projekt selbst auszuwählen, da der Patch bei derselben
Ressource angewendet werden muss, in der er erstellt wurde. Der Patch muss außerdem bei denselben
Dateiüberarbeitungen angewendet werden, in denen er generiert wurde, damit sichergestellt werden kann, dass
der Patch in der gleichen Ressourcenkontinuität angewendet wird (dies geschieht am einfachsten, wenn Sie den
Patch über eine Version erstellen).
- Wählen Sie im Dialogfenster Team > Patch erstellen... aus. Der Assistent für das Erstellen
von Patches wird geöffnet.
- Wählen Sie aus, wo der Patch gespeichert werden soll:
- In Zwischenablage speichern - Der Patch wird in der Zwischenablage platziert, damit er in
einen Texteditor (z. B. ein E-Mail-Programm) eingefügt werden kann.
- In Dateisystem speichern - Der Patch wird in der angegebenen Datei im lokalen Dateisystem
platziert.
- Im Arbeitsbereich speichern - Der Patch wird in der angegebenen Datei in einem der bestehenden
Workbench-Projekte platziert.
Im Falle von kleinen Patches ist es sinnvoll, den Patch mit der Zwischenablage zu übertragen, doch in den
meisten Fällen ist das lokale Dateisystem die bessere Option. Klicken Sie auf Weiter, um die Generierung
des Patches zu konfigurieren.
- Wählen Sie aus, wie der Pfad konfiguriert werden soll:
- Rekursion zu Unterordnern - Wenn diese Option inaktiviert ist, ist nur das direkt
untergeordnete Element der Auswahl im Pfad enthalten. Ansonsten sind alle untergeordneten Elemente enthalten.
- Neue Dateien in Patch aufnehmen - Wenn diese Option inaktiviert ist, sind nur Dateien
enthalten, die in der CVS-Versionssteuerung sind. Ansonsten sind auch Dateien enthalten, die kürzlich erstellt
aber nicht hinzugefügt oder ignoriert wurden.
- Ausgabeformat der Diff-Datei - Diese Option ermöglicht die Auswahl mehrerer gemeinsamer
Diff-Ausgabeformate. Das Unified-Format wird von vielen Patch-Anwendungstools verwendet, einschließlich
Eclipse.
- Klicken Sie auf Fertig stellen.
- Übertragen Sie den Patch dem Projekt entsprechend, das korrigiert werden soll.
So wenden Sie einen Patch an:
- Wählen Sie die Ressource aus, an der der Patch generiert wurde. Diese Ressource muss dieselben
Dateiüberarbeitungen enthalten wie die Kontinuität der Ressourcen, in denen der Patch generiert wurde.
- Wählen Sie im Kontextmenü Team > Patch-Code anlegen... aus. Der Assistent für Ressourcen-Patches
wird geöffnet.
- Geben Sie an, wo der Patch sich befindet:
- Datei - Der Patch befindet sich in einer Datei im lokalen Dateisystem. Geben Sie den
vollständigen Pfad zur Datei ein, oder verwenden Sie die Schaltfläche Durchsuchen..., um die Datei
zu suchen.
- Zwischenablage - Der Patch befindet sich in der Zwischenablage. Warnung: Es ist sicherer,
einen Patch aus einer Datei zu verwenden. Es kann sein, dass Zeilenabschlüße nicht korrekt gehandhabt werden,
wenn die Zwischenablage verwendet wird und der Patch auf einer anderen Plattform generiert wurde (z. B. Linux
gegenüber Windows).
Klicken Sie auf Weiter, um das Ergebnis der Patch-Anwendung anzuzeigen.
- Das obere Teilfenster zeigt an, ob der Patch erfolgreich an Dateien Ihres Arbeitsbereichs angewendet
werden konnte. Wenn Sie ein Blattelement in der Baumstruktur auswählen, zeigt das unterste Teilfenster
den Teil der Patch-Datei (in der Patch-Terminologie bekannt als "Hunk") in einer leicht lesbaren,
nebeneinander angeordneten Darstellung. Hinweis: Das unterste Teilfenster zeigt keine
Voranzeige der Ressourcen in Ihrem Arbeitsbereich nach einer möglichen Anwendung des "Hunk".
Es wird
lediglich der Inhalt der Patch-Datei angezeigt.
-
Das markierte Element gibt an, dass ein Patch (oder ein "Hunk") nicht erfolgreich an einer Ressource des
Arbeitsbereichs angewendet werden konnte. Sie können Patches oder einzelne "Hunks" ausschließen, indem Sie
deren Markierungen aufheben.
-
Ein rotes Ausrufezeichen zeigt an, dass bei einem Patch oder einem "Hunk" ein Problem aufgetreten ist.
Dies ist der Fall, wenn der Patch nicht korrekt formuliert wurde oder die Überarbeitung einer oder mehrerer
Dateien, an denen der Patch generiert wurde, stimmen nicht mit den Überarbeitungen überein, bei denen der
Patch angewendet wird.
Sie finden die Ursache der Störung in runden Klammern.
Um den vollständigen Patch erfolgreich anzuwenden, müssen Sie die Probleme (rote Ausrufezeichen) eliminieren
und alle Elemente markieren, indem Sie die Optionen auf dieser Assistentenseite definieren (siehe "Optionen").
- Wenn Sie alle Schritte ausgeführt haben, klicken Sie auf Fertig stellen, um den Patch anzuwenden.
Der Arbeitsbereich enthält nun ausgehende Änderungen für jede Datei, die durch den Patch modifiziert wurde.
Optionen für das Anwenden des Patches
Folgende Optionen helfen Ihnen dabei, erfolgreiche Übereinstimmungen für Ihre Patch-Datei zu erhalten:
-
Wechseln Sie zur ersten Seite des Assistenten für Ressourcenpatches zurück, und wählen Sie die korrekte
Ressource aus, an der der Patch angewendet werden soll.
-
Wenn ein allgemeines Präfix der in der Patch-Datei gespeicherten Pfadnamen nicht mit den Pfadnamen in Ihrem
aktuellen Arbeitsbereich übereinstimmt, können Sie die Option "Führende Pfadnamensegmente ignorieren" auswählen.
-
Verwenden Sie die Option "Leerzeichen ignorieren", um den Abgleichprozess von Leerzeichenunterschieden
zwischen der Patch-Datei und den Dateien in Ihrem Arbeitsbereich unabhängig zu machen.
-
Passen Sie den Wert "Maximaler Fuzz-Faktor" (Patch-Terminologie) an.
Dieser Faktor legt fest, wie weit entfernt von seiner ursprünglichen Zeile ein "Hunk" abgleichen darf.
Der Standardwert ist zwei. Wenn ein "Hunk" nicht in der Zeile abgleicht, die in der Patch-Datei angegeben ist,
versucht der Assistent, den "Hunk" eine Anzahl von Zeilen vor oder nach der Position abzugleichen, die der
"Fuzz"-Zahl entspricht.
-
Verwenden Sie die Option "Patch zurücknehmen" für Patch-Dateien, die in Ihrem Arbeitsbereich bereits angewendet wurden.
Diese Option ist außerdem beim Widerrufen und Wiederholen eines Patches nützlich.

Programmierung im Team mit CVS

Ressourcen vergleichen
CVS