Revision Control via MySQL

Eine einfache Lösung für Anwendungen mit MySQL-Anbindung

Natürlich braucht ein eigenes Framework auch eine Versionskontrolle über Scripts, Module usw. Revision-Control gibt es natürlich auch in meinem Framework, es ist praktisch eine in das Framework voll integrierte Webanwendung.

Die Lösung ist denkbar einfach, siehe Tabelle untenstehend:

Field id ctime path content name comment
Type int(11) timestamp varchar(255) longtext varchar(48) varchar(255)
Null NO NO NO YES NO NO
Default CURRENT_TIMESTAMP
Key PRI MUL
Extra auto_increment

Was man dazu nun noch braucht ist ein Script was die einzucheckende Datei schnappt und in diese Tabelle einfügt. Idealerweise wird dieses Script gleich aus dem Editor heraus gestartet. Das Auschecken erfolgt über ein dediziertes Backend als Webanwendung. Nun kann man in einer Anwendung selbst prüfen welche Version vorliegt oder besser sogar prüfen ob die Anwendung auf dem neuesten Stand ist. Hierzu wird in der Anwendung eine MD5-Checksumme der Source (Scriptdatei) gebildet und in die Tabelle geschaut ob es eine solche gibt. Select md5(content) as md5 from rcs wäre hierzu die Abfrage.

Untenstehende Tabellen vermitteln einen Eindruck vom Backend zu meinem RCS.

Id Name LastModified Zeigen Deploy
54 pack.pl 2022-12-03 12:22:06 📃
53 rcs.html 2022-12-03 12:06:36 📃
51 rcs.pl 2022-12-02 19:02:12 📃
50 MyRCS.pm 2022-12-02 18:40:20 📃
43 forum.pm 2022-12-02 12:34:34 📃
35 fwdbf.cgi 2022-12-01 15:13:05 📃
13 t_forum.pm 2022-11-29 15:26:23 📃

Repository MyRCS.pm

Id Kommentar Datum Größe Zeigen Download
50 throbber() hinzugefügt, betr. Update Kommentar 2022-12-02 18:40:20 3888 📃 📁
48 Update Template und Kommentare eingebaut 2022-12-02 15:49:13 3827 📃 📁

Checkout und Deploy

Aus dem Browser heraus kann nun auch das Checkout der neuesten Version direkt im Original-Pfad erfolgen. Der Werdegang eines Moduls ist also so, daß es nach der lokalen Erprobung in das RCS eingecheckt und vom RCS aus per Mausklick im richtigen Pfad auf dem produktiven Server installiert wird. Damit entfällt eine gesonderte Übertragung (SCP, sFTP) welche die Gefahr inkonsistenter Daten birgt.


Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. s​os­@rolf­rost.de.