Aufgrund einer akuten Spamwelle ist das Editieren für nicht angemeldete Benutzer zur Zeit deaktiviert. Wir bitten um Verständnis.

Updategruppe

Aus Clonk Wiki

Wechseln zu: Navigation, Suche

Sogenannte Updategruppen (C4Group-Gruppen der Endung ".c4u") ermöglichen es, Daten in einer Clonk-Installation zu aktualisieren. Es gibt zwei Typen von Updategruppen:

Extra.c4g-Updates 
In der Extra.c4g werden zusätzliche Daten (z.B. Grafiken und Musik) für Szenarien hinterlegt. Damit der Benutzer das Kopieren der Daten in diesen Ordner nicht manuell erledigen muss, kann dies auch automatisch durch ein Update-Paket erledigt werden. Hierbei wird einfach der Inhalt der Update-Gruppe in den in der Updategruppe angegebenen Ordner kopiert.
Gruppen-Updates 
Werden eingesetzt, um andere gepackte Gruppen (also z.B. Objektdefinitionen oder Rundenordner) zu aktualisieren. Beim Update wird darauf geachtet, dass die erzeugte Gruppe exakt der Zielversion entspricht.

Inhaltsverzeichnis

Erzeugung

Extra.c4g Updates

TODO - Kann mich gerade nicht mehr erinnern wie das genau geht -- PeterW

Gruppen-Updates

Soll ein Gruppen-Update erstellt werden, so benötigt man erst die zwei Gruppen: Einmal die "alte" Version der Gruppe (die, die das Updatepaket aktualisieren können soll) und die "neue" Version der Gruppe (die, die nach Anwendung des Updates heraus kommen soll).

Die Erstellung verläuft automatisch. Das muss auch so sein, da in Update-Gruppen spezielle (nicht direkt sichtbare) sog. Header-Informationen gespeichert werden, die beim manuellen Packen falsch geschrieben würden. Deshalb darf man eine Update-Gruppe nach dem Erstellen auch nie manuell entpacken und nachher wieder packen - dadurch wird das Update später nicht mehr funktionieren.

Das kleine Tools c4group.exe (bei der Doku dabei) erledigt die Erzeugung der Updategruppe. Die Befehlszeilensytax ist:

c4group [update.c4u] -g [ver1.c4g] [ver2.c4g] [Name]

Dabei ist für "[update.c4u]" der Dateiname für die neu zu erstellende Updategruppe einzusetzen. Für "[ver1.c4g]" ist der Dateiname der "alten" Version und für "[ver2.c4g]" der Dateiname der neuen Version einzufügen. Als letztes wird ein Name erwartet, der in der Update-Gruppe gespeichert wird (wie oben gesagt: dieser kann nach der Erzeugung nicht manuell geändert werden!).

Wichtig: Der Dateiname, der für "[ver1.c4g]" eingesetzt, wird später auch der sein, an der die Zieldatei für das Update gesucht wird. Wenn das Updatepaket also später z.B. die Datei "MeineRunden.c4f" aktualisieren soll, lautet die Syntax korrekt z.B.:

c4group RundenUpdate.c4u -g MeineRunden.c4f MeineRundenNeu.c4f "Update für meine Runden!"


Erstellungsvorgang

Bei der Erstellung geht c4group beide Gruppen durch und fügt alle abweichenden Dateien / Ordner in die Updategruppe ein. Dieser Prozess wird auf der Konsole protokoliert, so dass man genau nachvollziehen kann, welche Dateien später durch das Updatepaket aktualisiert werden. Dies ist eine gute Kontrolle, ob das Update auch wirklich wie gewollt erzeugt wird.

Anmerkung: Es ist normal, dass im Log viele bis alle Ordner als zu aktualisieren angegeben werden. Das deutet darauf hin, dass diese Ordner in der Zwischenzeit entpackt und wieder gepackt wurden, wodurch sich Änderungszeiten intern ändern. Damit das Ziel wirklich exakt erstellt werden kann, müssen deshalb zumindest diese Information in der Update-Gruppe gespeichert werden.

Mehrere Quellgruppen

Es ist ohne Probleme möglich, dass eine Updategruppe mehrere "alte Versionen" unterstützt. Die Updategruppe enthält dann nachher alle Daten, die nötig sind, um jede einzelne der Versionen aktualisieren zu können. Um Support für eine neue Version hinzuzufügen, muss einfach c4group nochmal mit derselben Syntax auf eine bereits existierende Update-Datei aufgerufen werden. Ist "[ver1.c4g]" in einer anderen Version als bei der ursprünglichen Erstellung, wird das Update automatisch erweitert.

Anmerkung: Natürlich muss "[ver2.c4g]" in exakt derselben Version wie bei der Ersterstellung sein. Wenn nicht, wird ein Fehler bei der Erstellung ausgegeben.

Qualitätsprüfung

In der Updategruppen werden Checksummen (CRC) aller aktualisierbaren Gruppen und der Gruppe in der Zielversion gespeichert. Damit ist einmal sichergestellt, dass das Update nicht versehentlich auf eine Gruppe ausgeführt wird, die nicht unterstützt wird (dies würde die Gruppe mit hoher Wahrscheinlichkeit unbrauchbar machen) und sichert außerdem das Ergebnis ab. Weicht die Checksumme am Ende vom Zielwert ab, so wird eine Fehlermeldung ausgegeben.

Batchprogramm (Windows)

Auf dem CCAN gibt es ein kleines Batchprogramm für solche, die mit der Kommandozeile nicht so ganz klar kommen: Link

extern