Die Geschichte der Versionskontrollsysteme ist eine Geschichte voller Missverständnisse. Eines dieser Missverständnisse ist, dass man für das Versionieren von Dokumenten zwingend ein kompliziertes System benötigt, dessen unnötig unlogische Bedienung nicht nur ein Handbuch, sondern auch das Lesen von zwölfundvierzig „Tutorials“ auf windigen Websites voraussetzt, um überhaupt die Grundlagen einigermaßen auf die Kette zu kriegen.
Am anderen Ende des Komplexitätsspektrums sitzen freilich Firmen, deren Versionskontrolle darin besteht, dass sie der jeweils aktuellen Ausführung eines Dokuments das jeweils aktuelle Datum im Dateinamen voranstellen. Das indes empfiehlt sogar die Bibliothek der Harvard-Universität, wo man häufiger mal mit Dokumenten arbeitet, habe ich gehört. Wenn man aber ein Dokument von gestern hat und es für heute neu versionieren möchte, dann muss man es umständlich kopieren, die Umbenennen-Taste drücken, das alte Datum aus dem Namen löschen und das neue Datum in den Namen reinkopieren.
Das finde ich albern.
Und weil ich alberne Computerprobleme gern löse, habe ich ein kleines Programm geschrieben, das diese Schritte komplett dadurch ersetzt, dass man es startet und dann beliebig viele Dateien in sein Fenster hineinzieht, die dann entsprechend kopiert und versioniert werden.
Das Programm trägt den überschaubar komplizierten Namen DatePrefixCopy und ist hier RAR-verpackt vorkompiliert zum Herunterladen verfügbar. Es gibt hiervon keine Version für andere Betriebssysteme als Windows. Firmen, die so etwas machen, setzen nach meiner Beobachtung immer Windows ein, so dass es dafür keinen Markt gäbe, und die Bedienoberfläche meines Programms setzt nativ auf das Windows-API, weil ich außerordentlich wenig Lust hatte, einen Rattenschwanz an Abhängigkeiten hinterherziehen zu müssen. Eigentlich wollte ich dort, wo jetzt der etwas langweilige Text „Drop Files Here“ (Mehrsprachigkeit ist derzeit nicht geplant) steht, stattdessen ein buntes Bildchen reinmachen, aber aufgrund eines (bereits gemeldeten) Fehlers im zugrundeliegenden Framework lässt sich das derzeit nicht vernünftig kompilieren. Vielleicht hole ich das irgendwann mal nach. (Nachtrag vom 5. August 2024: Der Fehler wurde umgangen.)
Natürlich wurde das Programm in Common Lisp implementiert, denn völlig zu Recht wies ein geschätzter Texteschreibkollege anlässlich eines zuvor von mir geschriebenen Programms darauf hin, dass Rust, das ich hierfür anfangs ebenfalls im Sinn hatte, eine Sprache ist, die ja nun nicht jeder zu verstehen vermag oder auch nur beabsichtigt. Aber wer kann denn bitte kein Lisp?
(Außerdem senkt das die Wahrscheinlichkeit, dass irgendein Schwachkopf in Zukunft mal einen Teil des Codes per ChatGPT als „seinen“ Code ausgibt, ohne die Lizenz dranzuschreiben, weil er sie gar nicht kennen kann. — Dass wir mal die Rechte von Urhebern wenigstens ein wenig schützen können werden, indem wir unpopuläre Technologie verwenden, hätte mir vor ein paar Jahren ja auch noch keiner geglaubt. Aber ich schweife ab.)
Möge es irgendwem von Nutzen sein.
Meinung des Tages: Im Kampf gegen den Kindesmissbrauch sei es ein enormes Hindernis, wenn Menschen für im Internet feilgebotene Waren (Pornos zum Beispiel; warum eigentlich nicht auch iPhones?) um Geld gebeten werden.


Kennst Du PCManFM?
Klingt nach einem Radiosender. Aber ja, kenne ich. Gibt es zu dieser Frage eine Anschlussfrage oder ist das mehr so ein Wissenstest?
Der liefert einem halt direkt den Prompt, um den Dateinamen anzupassen, wenn man Ctrl‑V folgend auf Ctrl‑C drückt.
Gut, ignorieren wir mal den Umstand, dass das immer noch komplizierter ist als meine Null-Tasten-Lösung: Wo genau finde ich die native Windowsversion?
49.289.088 Bytes, um eine Datei umzubenennen? wth
Das meiste davon ist die Runtime. Common Lisp hat ja den Charme, dass jede .exe die komplette Entwicklungsumgebung mitliefert und man das Kompilat quasi zur Laufzeit umprogrammieren kann. (Kommerzielle Compiler, etwa LispWorks, haben eine Art „Stripfunktion“ — einen Treeshaker — eingebaut, was die Größe deutlich drücken würde. Aber ich habe momentan keine Lizenz hierfür. Gern selbst kompilieren. Ich teile das Ergebnis dann gern mit allen.)
Nachtrag: Grundsätzlich teile ich den Einwand gegen ineffizient kompilierte Software übrigens. Aber ich hatte mal wieder Bock auf was mit Lisp. Hey, es hätte schlimmer sein können. Ich hätte JavaScript nutzen können… (und Trickserei mit Laufzeitkompression ist meiner Meinung nach die Nachteile — mehr RAM, mehr CPU — nicht wert; die dpc.exe ist doch recht sparsam, was das betrifft).
+42 für Lisp-Nutzung
‑2 für Lisp-2-Nutzung
Macht in Summe immer noch 40. Bin also im Plus.
++ bist ja auch ein Lisp-Bruder
Hä, also 41?
++ ist bei mir im Sinne deines “+1”-Buttons als Reaktion gemeint; was in diesem Kontext meine Zustimmung zu deinem Kommentar davor signalisieren soll.
Das werde ich sicher die Tage mal ausprobieren.
Aber in einem Punkt muss Ich Dir widersprechen:
Am anderen Ende sitzen Firmen, die eine Versionierung haben, aber trotzdem jedesmal eine neue Datei mit Datumspräfix erzeugen
Und — funktioniert es?