ProjekteNerdkrams
In eigener Sache: Dateien mit yymmdd_ präfigieren per Drag&Drop

Die Geschichte der Ver­sion­skon­troll­sys­teme ist eine Geschichte voller Missver­ständ­nisse. Eines dieser Missver­ständ­nisse ist, dass man für das Ver­sion­ieren von Doku­menten zwin­gend ein kom­pliziertes Sys­tem benötigt, dessen unnötig unl­o­gis­che Bedi­enung nicht nur ein Hand­buch, son­dern auch das Lesen von zwöl­fund­vierzig „Tuto­ri­als“ auf windi­gen Web­sites voraus­set­zt, um über­haupt die Grund­la­gen einiger­maßen auf die Kette zu kriegen.

Am anderen Ende des Kom­plex­itätsspek­trums sitzen freilich Fir­men, deren Ver­sion­skon­trolle darin beste­ht, dass sie der jew­eils aktuellen Aus­führung eines Doku­ments das jew­eils aktuelle Datum im Dateina­men voranstellen. Das indes emp­fiehlt sog­ar die Bib­lio­thek der Har­vard-Uni­ver­sität, wo man häu­figer mal mit Doku­menten arbeit­et, habe ich gehört. Wenn man aber ein Doku­ment von gestern hat und es für heute neu ver­sion­ieren möchte, dann muss man es umständlich kopieren, die Umbe­nen­nen-Taste drück­en, das alte Datum aus dem Namen löschen und das neue Datum in den Namen reinkopieren.

Das finde ich albern.

Und weil ich alberne Com­put­er­prob­leme gern löse, habe ich ein kleines Pro­gramm geschrieben, das diese Schritte kom­plett dadurch erset­zt, dass man es startet und dann beliebig viele Dateien in sein Fen­ster hineinzieht, die dann entsprechend kopiert und ver­sion­iert wer­den.

Das Pro­gramm trägt den über­schaubar kom­plizierten Namen DatePre­fix­Copy und ist hier RAR-ver­packt vorkom­piliert zum Herun­ter­laden ver­füg­bar. Es gibt hier­von keine Ver­sion für andere Betrieb­ssys­teme als Win­dows. Fir­men, die so etwas machen, set­zen nach mein­er Beobach­tung immer Win­dows ein, so dass es dafür keinen Markt gäbe, und die Bedienober­fläche meines Pro­gramms set­zt nativ auf das Win­dows-API, weil ich außeror­dentlich wenig Lust hat­te, einen Rat­ten­schwanz an Abhängigkeit­en hin­ter­herziehen zu müssen. Eigentlich wollte ich dort, wo jet­zt der etwas lang­weilige Text „Drop Files Here“ (Mehrsprachigkeit ist derzeit nicht geplant) ste­ht, stattdessen ein buntes Bild­chen rein­machen, aber auf­grund eines (bere­its gemelde­ten) Fehlers im zugrun­deliegen­den Frame­work lässt sich das derzeit nicht vernün­ftig kom­pilieren. Vielle­icht hole ich das irgend­wann mal nach. (Nach­trag vom 5. August 2024: Der Fehler wurde umgan­gen.)

Natür­lich wurde das Pro­gramm in Com­mon Lisp imple­men­tiert, denn völ­lig zu Recht wies ein geschätzter Tex­teschreibkol­lege anlässlich eines zuvor von mir geschriebe­nen Pro­gramms darauf hin, dass Rust, das ich hier­für anfangs eben­falls im Sinn hat­te, eine Sprache ist, die ja nun nicht jed­er zu ver­ste­hen ver­mag oder auch nur beab­sichtigt. Aber wer kann denn bitte kein Lisp? ;) (Außer­dem senkt das die Wahrschein­lichkeit, dass irgen­dein Schwachkopf in Zukun­ft mal einen Teil des Codes per Chat­G­PT als „seinen“ Code aus­gibt, ohne die Lizenz dranzuschreiben, weil er sie gar nicht ken­nen kann. — Dass wir mal die Rechte von Urhe­bern wenig­stens ein wenig schützen kön­nen wer­den, indem wir unpop­uläre Tech­nolo­gie ver­wen­den, hätte mir vor ein paar Jahren ja auch noch kein­er geglaubt. Aber ich schweife ab.)

Möge es irgendwem von Nutzen sein.


Mei­n­ung des Tages: Im Kampf gegen den Kindesmiss­brauch sei es ein enormes Hin­der­nis, wenn Men­schen für im Inter­net feil­ge­botene Waren (Pornos zum Beispiel; warum eigentlich nicht auch iPhones?) um Geld gebeten wer­den.

Senfecke:

    • Klingt nach einem Radiosender. Aber ja, kenne ich. Gibt es zu dieser Frage eine Anschlussfrage oder ist das mehr so ein Wis­senstest?

      • Der liefert einem halt direkt den Prompt, um den Dateina­men anzu­passen, wenn man Ctrl‑V fol­gend auf Ctrl‑C drückt.

        • Gut, ignori­eren wir mal den Umstand, dass das immer noch kom­pliziert­er ist als meine Null-Tas­ten-Lösung: Wo genau finde ich die native Win­dowsver­sion?

    • Das meiste davon ist die Run­time. Com­mon Lisp hat ja den Charme, dass jede .exe die kom­plette Entwick­lung­sumge­bung mitliefert und man das Kom­pi­lat qua­si zur Laufzeit umpro­gram­mieren kann. (Kom­merzielle Com­pil­er, etwa Lisp­Works, haben eine Art „Strip­funk­tion“ — einen Tree­shak­er — einge­baut, was die Größe deut­lich drück­en würde. Aber ich habe momen­tan keine Lizenz hier­für. Gern selb­st kom­pilieren. Ich teile das Ergeb­nis dann gern mit allen.) https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_coolnew.gif

      Nach­trag: Grund­sät­zlich teile ich den Ein­wand gegen inef­fizient kom­pilierte Soft­ware übri­gens. Aber ich hat­te mal wieder Bock auf was mit Lisp. Hey, es hätte schlim­mer sein kön­nen. Ich hätte JavaScript nutzen kön­nen… (und Trick­serei mit Laufzeitkom­pres­sion ist mein­er Mei­n­ung nach die Nachteile — mehr RAM, mehr CPU — nicht wert; die dpc.exe ist doch recht sparsam, was das bet­rifft).

  1. Das werde ich sich­er die Tage mal aus­pro­bieren.
    Aber in einem Punkt muss Ich Dir wider­sprechen:
    Am anderen Ende sitzen Fir­men, die eine Ver­sion­ierung haben, aber trotz­dem jedes­mal eine neue Datei mit Datum­sprä­fix erzeu­gen https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_confusednew.gif

Comments are closed.

https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_smilenew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_biggrin2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_sadnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_eek.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_shocked.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_confusednew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_coolnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_lol.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_madnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_aufsmaul.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_seb_zunge.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_blushnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_frown.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_twistedevil1.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_twistedevil2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/icon_mad.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_rolleyesnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_wink2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_idea2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_arrow2.gif 
mehr …
 

Erlaubte Tags:
<strong> <em> <pre> <code> <a href="" title=""> <img src="" title="" alt=""> <blockquote> <q> <b> <i> <del> <tt> <span style=""> <strike>

Datenschutzhinweis: Deine IP-Adresse wird nicht gespeichert. Details findest du hier.