Der Stempel wird mit der Uhr verglichen, nicht mit dem Commit
pruef-zwischenspeicher verlangte, dass derselbe Commit die Stilvorlage UND die HTML aendert. Das ist der Normalfall, aber nicht die Regel: Wird der Stempel in einem Folge-Commit nachgezogen, kommt die Aenderung genauso an -- die Pruefung blieb trotzdem rot und beschuldigte einen Commit, an dem nichts falsch war. Eine rote Zeile, die rot bleibt, bringt Menschen dazu, Rot zu uebersehen. Verglichen wird jetzt der Stempel selbst mit dem Zeitpunkt der letzten Aenderung an assets/. Ein Stempel, der juenger ist, wurde danach gezogen -- egal in welchem Commit. Das ist strenger als vorher, nicht lockerer: Eine HTML-Aenderung aus einem ganz anderen Grund (ein Tippfehler im Text) haette die alte Pruefung besaenftigt, ohne dass der Stempel gezogen wurde. Dazu ein Fund am Rand: anruf-probe.html trug ein handgeschriebenes ?v=202609191018 am Manifest-Link. Kein Werkzeug pflegt diese Stelle, keine der 20 anderen Seiten hat so etwas -- sie waere still veraltet. Entfernt. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -289,15 +289,55 @@ console.log("\n=== Der Versionsstempel — daran hängt das automatische Update"
|
|||||||
if (!letzterCommit) {
|
if (!letzterCommit) {
|
||||||
console.log(" -- konnte nicht nachsehen: kein Commit an workspace/assets gefunden");
|
console.log(" -- konnte nicht nachsehen: kein Commit an workspace/assets gefunden");
|
||||||
} else {
|
} else {
|
||||||
const dateien = git("show", "--name-only", "--format=", letzterCommit)
|
/* DIE FRAGE IST NICHT "STEHT BEIDES IM SELBEN COMMIT", SONDERN
|
||||||
.stdout.split(/\r?\n/).filter(Boolean);
|
"KOMMT DIE ÄNDERUNG AN" (geschärft 20.09.2026).
|
||||||
const hatAssets = dateien.some((f) => /^workspace\/assets\/.*\.(css|js|mjs)$/.test(f));
|
|
||||||
const hatSeiten = dateien.some((f) => /^workspace\/.*\.html$/.test(f));
|
Vorher verlangte diese Stelle, dass derselbe Commit die
|
||||||
ok(!hatAssets || hatSeiten,
|
Stilvorlage UND die HTML ändert. Das ist der Normalfall (der
|
||||||
hatAssets && !hatSeiten
|
Stempel wird vor dem Committen gezogen), aber nicht die Regel:
|
||||||
? `Commit ${letzterCommit.slice(0, 7)} hat Stilvorlagen geändert, aber keine HTML — `
|
Wird der Stempel in einem FOLGE-Commit nachgezogen, kommt die
|
||||||
+ "der Stempel wurde nicht mitgezogen, die Änderung käme bei niemandem an"
|
Änderung genauso an — die Prüfung blieb trotzdem rot und
|
||||||
: `im letzten Commit an assets/ (${letzterCommit.slice(0, 7)}) wurde der Stempel mitgezogen`);
|
beschuldigte einen Commit, an dem nichts falsch war.
|
||||||
|
|
||||||
|
Verglichen wird deshalb der Stempel selbst mit dem Zeitpunkt
|
||||||
|
der letzten Änderung an assets/. Ein Stempel, der JÜNGER ist
|
||||||
|
als die Änderung, wurde danach gezogen — egal in welchem
|
||||||
|
Commit. Einer, der älter ist, kann sie nicht enthalten.
|
||||||
|
|
||||||
|
Das ist strenger als die alte Fassung, nicht lockerer: Eine
|
||||||
|
HTML-Änderung aus einem ganz anderen Grund (ein Tippfehler im
|
||||||
|
Text) hätte die alte Prüfung besänftigt, ohne dass der Stempel
|
||||||
|
gezogen wurde. Die Zahl lügt nicht. */
|
||||||
|
const wannRoh = git("log", "-1", "--format=%cI", letzterCommit).stdout.trim();
|
||||||
|
const wann = new Date(wannRoh);
|
||||||
|
/* Der Stempel heißt JJJJMMTTSSMM in ORTSZEIT -- so setzt ihn
|
||||||
|
tools/workspace-stempel.mjs. Also auch in Ortszeit vergleichen
|
||||||
|
und nicht in UTC, sonst wäre die Prüfung zwei Stunden lang im
|
||||||
|
Jahr falsch. */
|
||||||
|
const z = (n) => String(n).padStart(2, "0");
|
||||||
|
const alsStempel = (dd) => Number(`${dd.getFullYear()}${z(dd.getMonth() + 1)}`
|
||||||
|
+ `${z(dd.getDate())}${z(dd.getHours())}${z(dd.getMinutes())}`);
|
||||||
|
const stempelZahl = Number(alle[0]);
|
||||||
|
const commitZahl = alsStempel(wann);
|
||||||
|
const passt = Number.isFinite(stempelZahl) && Number.isFinite(commitZahl)
|
||||||
|
&& stempelZahl >= commitZahl;
|
||||||
|
ok(passt,
|
||||||
|
passt
|
||||||
|
? `der Stempel (${stempelZahl}) ist jünger als die letzte Änderung an assets/`
|
||||||
|
+ ` (${letzterCommit.slice(0, 7)}, ${commitZahl}) — sie kommt an`
|
||||||
|
: `der Stempel (${stempelZahl}) ist ÄLTER als die letzte Änderung an assets/`
|
||||||
|
+ ` (${letzterCommit.slice(0, 7)}, ${commitZahl}) — der Browser behält seine`
|
||||||
|
+ " alte Kopie, die Änderung käme bei niemandem an");
|
||||||
|
|
||||||
|
/* GEGENPROBE: Diese Zeile ist ein Zahlenvergleich, und ein
|
||||||
|
Zahlenvergleich bestaetigt gern. Sie ist auf dem Weg hierher
|
||||||
|
einmal an NaN gescheitert -- also an einem Fehler in ihr
|
||||||
|
selbst, nicht an einem echten Befund. Deshalb wird hier
|
||||||
|
nachgewiesen, dass sie einen ECHTEN alten Stempel auch
|
||||||
|
erkennt. */
|
||||||
|
const alterStempel = commitZahl - 1;
|
||||||
|
ok(!(alterStempel >= commitZahl) && stempelZahl >= commitZahl,
|
||||||
|
`Gegenprobe: ein Stempel von ${alterStempel} wuerde durchfallen, ${stempelZahl} nicht`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
|
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
|
||||||
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
|
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
|
||||||
WARUM das Telefon nicht klingelt, ist das besonders unpassend. -->
|
WARUM das Telefon nicht klingelt, ist das besonders unpassend. -->
|
||||||
<link rel="manifest" href="/workspace/crew.webmanifest?v=202609191018" />
|
<link rel="manifest" href="/workspace/crew.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609202314" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609202314" />
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
Reference in New Issue
Block a user