Programmierung

Oct 2, 2020

Ich habe einen Fehler in GIT gefunden - WAT? Die GIT-Lotterie

Ich habe einen Fehler in GIT gefunden - WAT? Die GIT-Lotterie

Ich habe einen Fehler in GIT gefunden - WAT? Die GIT-Lotterie

Sebastian Wilgosz

Ruby-Entwickler

Überraschtes Kind
Überraschtes Kind
Überraschtes Kind

Ich habe einen Fehler in GIT gefunden. Wie wahrscheinlich ist es, dass das passiert? Nennen Sie mir irgendeine Lotterie, die Sie sich vorstellen können, und ich kann immer noch argumentieren, ob es schwieriger ist, dabei zu gewinnen. Hier ist, wie es passiert ist...

Seit ich das Ruby/JS WAT? Video gesehen habe, sehe ich es immer wieder vor meinen Augen, wenn ich meine persönlichen WATs in allen Bereichen meines Lebens entdecke. Und ich will immer darüber schreiben, also hier ist so ein Ding.

Ich habe einen Fehler in GIT gefunden.

Wie wahrscheinlich ist es, dass das passiert? Nennen Sie mir irgendeine Lotterie, die Ihnen einfällt, und ich kann immer noch darüber streiten, ob es schwieriger ist, dabei zu gewinnen oder einen Fehler in GIT zu finden. Trotzdem - es ist mir passiert, und das Lustigste ist, dass es während meiner Arbeit an einer Blog-Anwendung passierte; allein!

Keine grossen Teams, Zusammenführungen, übergeordnete Geschichte... nichts. Nur grundlegende Funktionen wurden dort verwendet.

Hier ist es passiert...

Für diejenigen, die das Wort WAT nicht kennen: Es ist ein Begriff, der eine Sache beschreibt, die keinen Platz haben sollte. Etwas völlig Unerwartetes und Nicht-Intuitives.

React blog application

Ich wollte my blog von Nuxt (Vue.js) zu Next (React.js) überschreiben, um ein sehr seltsames Verhalten im Zusammenhang mit dem Nuxt-API-Proxy zu testen.

Während der Entwicklung habe ich festgestellt, dass ich eine der Dateien der Komponente falsch benannt habe - Logo.js anstatt logo.js. Keine grosse Sache, könnte man sagen. Benennen Sie es einfach um, übertragen Sie die Änderungen und voilà! Sie sind fertig.

Allerdings lief nicht alles so reibungslos.

Modul nicht gefunden

Das kontinuierliche Integrationstool - in diesem Fall war es ein Now von Zeit - meldete, dass der Pfad zu meiner Logo-Komponente nicht gefunden werden konnte.

Ich war erstaunt. Ok, ich hatte erwartet, dass ich irgendwo im import oder im Dateinamen einen Tippfehler habe, aber das war nicht der Fall.

Meine Komponenten-Dateiliste war sehr klein und flach, es gab keinen Platz für einen Fehler:

Komponenten-Dateiliste in Driggls Blog-Anwendung:

Das gleiche galt für den Importteil, wo ich nur die Datei aus denselben Ordnern importieren musste, während ich nur diese eine Zeile für den Import der Logo-Komponente hatte:

import Logo from './logo'

Das Seltsamste war, dass eigentlich alles lokal funktionierte und es nur beim Deployment in die Produktion abstürzte.

Ich war wirklich verwirrt, bis ich meinem Teamkollegen den Code zeigte. Er hatte das Repository geklont und wir stellten fest, dass die Logo-Komponentendatei falsch benannt war, obwohl ich keine unbestätigten Änderungen hatte!

GIT hat Probleme.

Es war eine wirklich interessante Entdeckung, dass, als ich den GIT-Mechanismus überprüft habe, es mir gezeigt hat, dass GIT das Umbenennen von Dateien nicht erkennt, wenn die einzige Änderung, die man im Dateinamen vornimmt, die Grossschreibung des Buchstabens ist!

Also, obwohl ich die Logo-Datei umbenannt hatte, hat GIT das nie bemerkt! Ich sah aus wie:

und hier bin ich - WAT?

Versuchen Sie es selbst:

touch something.txt
git add -A .
git

Dann spielen Sie ein wenig mit dem Dateinamen:

mv something.txt Something.txt
git

Hat sich etwas geändert?

Nun versuchen Sie, die abgestuften Änderungen zurückzusetzen und überprüfen Sie den Status erneut:

git reset
git

Voilà! GIT hat auf magische Weise den Dateinamen erkannt!

Das Fazit

Diese kleine Erfahrung hat mich gelehrt, dass jede:r manchmal fehlerhaften Code schreibt. Wir sollten nie davon ausgehen, dass irgendetwas perfekt ist, denn jeder kleine Teil der Software, die wir nutzen, wird von einem Menschen geschrieben. Und Menschen können Fehler machen.

Und, wenn es um GIT geht, machen Sie einfach immer - IMMER die Überprüfung Ihrer eigenen Änderungen.

Ich schreibe gelegentlich über GIT-Hacks und -Tricks, aber das hier war das Interessanteste, was ich in den letzten Jahren gefunden habe.

✍️

ÜBER DEN AUTOR

Sebastian Wilgosz

Ruby-Entwickler

Ruby-Enthusiast, Kaffeeliebhaber und Produktivitätsfanatiker. Ich liebe es, kreative Wege zu finden, um alles, was ich tue, zu verbessern.

Sie haben eine Projektidee? Lassen Sie uns darüber reden und sie zum Leben erwecken.

Ihre hochqualifizierten Spezialisten sind da. Kontaktieren Sie uns, um zu sehen, was wir gemeinsam tun können.

Dariusz Michalski

Dariusz Michalski, CEO

dariusz@useo.pl

Konrad Pochodaj

Konrad Pochodaj, CGO

konrad@useo.pl

Sie haben eine Projektidee? Lassen Sie uns darüber reden und sie zum Leben erwecken.

Ihre hochqualifizierten Spezialisten sind da. Kontaktieren Sie uns, um zu sehen, was wir gemeinsam tun können.

Dariusz Michalski

Dariusz Michalski, CEO

dariusz@useo.pl

Konrad Pochodaj

Konrad Pochodaj, CGO

konrad@useo.pl

Sie haben eine Projektidee? Lassen Sie uns darüber reden und sie zum Leben erwecken.

Ihre hochqualifizierten Spezialisten sind da. Kontaktieren Sie uns, um zu sehen, was wir gemeinsam tun können.

©2009 - 2025 Useo sp. z o.o.