Grenzen der Verschmelzungsfunktionen (Merge function caveat)

von Centura Team Developer, Gupta bzw. SQLWindows mit Visual Toolchest

Jede Verschmelzungsfunktion bringt in der Verschmelzung begründete Probleme mit sich, die in bestimmten Fällen zu evtl. Fehlern führen. Diese Probleme ergeben sich hauptsächlich aus Unterschieden zwischen den zu verschmelzenden Dateien.

Die Verschmelzung wird manchmal durch zu starke "Verschachtelung" der Centura Builder Klassen ver-kompliziert. Unter Umständen können regelrecht Informationen verloren gehen, wenn die Klassen danach aktualisiert werden (insbesondere bei Form-Window- und QuickTabs- Klassen; siehe unten). Dieses Problem kann normalerweise durch die richtige Reihenfolge der Verschmelzung (zuerst mit der Basis, dann die Ableitungen [Vererbungen]) und der Aktualisierung nach jeder "Teilverschmelzung" der Bibliotheken ( libraries ) gelöst werden.

Gehen Sie also vom Diff/Merge-Tool gemeldeten Konflikten und Warnungen in den Ausgabedateien nach und prüfen Sie, ob die Verschmelzung korrekt bewältigt werden konnte. Compilieren Sie die Anwendung, um logische Fehler auf zu spüren.

Wenn Sie vermuten, daß die Verschmelzung nicht korrekt erfogte, dann ermitteln Sie mit dem Diff/Merge-Tool die Verschmelzungs-Änderungen zwischen jeder einzelnen Datei und dem Original und nehmen die Verschmelzung manuell durch Ausschneiden und Einfügen vor. Nutzen Sie auch die nur-Komponenten-Verschmelzung, um nur Teile von Quellcodes zu verschmelzen.

Subtilere Probleme können auch durch sehr große Quellcodeblöcke, in denen sehr viel geändert, gelöscht usw. wurde, entstehen. Deswegen raten wir Ihnen nachdrücklichst, immer erst das Verschmelzungsergebnis auf Korrektheit zu betrachten und zu prüfen, bevor Sie es als korrekten Quellcode akzeptieren.

Siehe auch

 


Verschmelzungsprobleme mit Forms, die "child form classes" enthalten
        (Merge problem with forms using child form classes)

von Centura Team Developer, Gupta bzw. SQLWindows mit Visual Toolchest

Aufgrund der Implementationsart von "top level form classes", ist Vorsicht bei der Verschmelzung von Instanzen von diesen Klassen geboten. Details beziehen Sie bitte aus der Dokumentation ( zu den "top level form classes").

Das typische Symtom für diesen Fehler ist, daß das Verschmelzungswerkzeug sehr lange Konfliktlisten für die Verschmelzung erzeugt. Ausserdem ist es möglich, daß mehrfache Kopien der ererbten Inhalte in die Verschmelzungs-Datei geschrieben werden. Verwenden Sie die Verschmelzungs-Datei NICHT, wenn dieser Fehler auftritt ! Zur Korrektur dieses Fehlers gehen Sie folgendermaßen vor:

Dieser Fehler trat auf, nach dem Sie eine Drei-Wege-Verschmelzung durchführten, von einer Anwendung, die ein "form" aus einer Teil-"form class" definiert. Voraussetzungen sind:

So korregieren Sie das Problem:

  1. Führen Sie eine Drei-Wege-Verschmelzung der *.APL-Versionen durch.
  2. Kopieren Sie die verschmolzene *.APL-Version in das Verzeichnis, wo sich das Original und die Folgeversionen der Anwendung (*.APP-Datei) befinden.
  3. Öffnen Sie jede *.APP-Datei, so daß die verschmolzene *.APL-Version aktualisiert werden muß und speichern Sie die *.APP-Dateien wieder.
  4. Abschliessend, führen Sie die Verschmelzung der *.APP-Dateien durch.

Zusammengefaßt: Wenn Sie "form class"-Bibliotheken ( libraries ) mit "child contents" haben und Sie nehmen Veränderungen an diesen "child contents" vor, müssen Sie immer zuerst nur die *.APL-Dateien verschmelzen. Dann aktualisieren Sie die Bibliotheken ( libraries ) in allen Dateien, die diese *.APL enthalten und setzen erst dann die Verschmelzung mit dem Rest fort.


Verschmelzungs -Konflikte und -Warnungen (Merging Conflicts and Warnings)

von Centura Team Developer, Gupta bzw. SQLWindows mit Visual Toolchest

Die Verschmelzung ist ein in sich komplizierter Prozeß und muß mit Sorgfalt verwendet werden. Lösen Sie jeden gemeldeten Konflikt oder jede angezeigte Warung auf, bevor Sie mit dem Verschmelzungsergebnis weiter arbeiten.

Ein Konflikt bedeutet,

Eine Warnung wird angezeigt, wenn:

Konflikte sind in der Centura Builder Outline mit '#### DIFF' gekennzeichnet oder sie werden mit einem Differenzvergleich zwischen dem Original und der Ausgabedatei ermittelt.

Wenn ein Konflikt auftritt, dann versucht das Verschmelzungswerkzeug drei Kopien der sich widersprechenden Quellcodezeilen in die Verschmelzungs-Datei zu schreiben - die Originalzeilen und die Zeilen der Version 1 und 2. Klar muß dabei sein, daß die Kopie des Originals keine genaue Kopie des Originals ist, weil es schon teilweise verschmolzen sein kann (also nur die, wo jede Verschmelzungs-taktik versagte ). In dem Fall, muß der Original-Quellcode aus der Original-Datei manuell kopiert werden.

Siehe auch


Begrenzungen in der Datei-Komplexität (Diff/Merge Tool - limits to file complexity)

von Centura Team Developer, Gupta bzw. SQLWindows mit Visual Toolchest

Der Vergleichs- und Verschmelzungs- Algorithmus ist durch die Komplexität der Centura-Builder-Outline-Datei in seiner Anwendbarkeit beschränkt. Die Genzen ergeben sich aus der maximal Höchstgeschwindigkeit, dem Zusammenfassung der verschiedenen Outline-Versionen und in der Anwendung der festgestellten Unterschiede. Outline's werden nur maximal 999 unterstützt, dies gilt sogar für Centura-Builder-Dateien. Im Centura-Builder können die Dateien nicht größer werden, aber durch eine Verschmelzung, die nach dem "Vergleichs- und Verschmelzungs- Algorithmus" folgt, könnten größere Dateien als 999 Outline's entstehen - hier ist also eine Grenze gesetzt. Der einzige Fall, in dem die 999-Grenze in normalen Anwendungen auftreten kann, ist, wenn mehr als 999 Konstanten verwendet werden. In diesem Fall müssen die Konstanten-Definitionen auf mehrere Dateien aufgesplittet werden und in ersteres "includiert" werden.

Bei Dateien, die diese Grenze überschreiten, gelingt es nicht den Vergleich und die Verschmelzung zuverlässig durchzuführen. Vergleich und Verschmelzung arbeieten zwar weiter, aber nicht nach der 999-ten Outline. Wollen Sie dann das Schein-Verschmelzung-Ergebnis zu den den Vor-Versionen vergleichen, so wird Ihnen eine volle Datei gemeldet, statt der Vergleichs-Unterschiede. Sie können also die Verschmelzung nur manuelle vornehmen.

Evtl. löschen Sie alle oder die größten Kommentare aus den beiden Vorversionen, oder es gelingt Ihnen anhand gleicher Klassen- bzw. Fenster-Namen die Verversions-Dateien genau an diesen Klassen- bzw. Fenster-Namen gleich zu splitten.

 


Der Autor distanziert sich ausdrücklich vom Inhalt aller externen Links und Verweise.
Er übernimmt keine Gewähr oder Haftung für
Vollständigkeit, Richtigkeit, Aktualität oder etwaige Schäden.