Prozessbefund aus der Beta-Bestandsaufnahme. Kein Codefehler — eine Falle beim Bauen.
Befund
In der lokalen Arbeitskopie des Maintainers liegt seit längerem eine untrackte Datei:
Assets/_Project/Scripts/Presentation/UI/InputGateDiagnostic.cs
Assets/_Project/Scripts/Presentation/UI/InputGateDiagnostic.cs.meta
Sie ist nicht im Repository. Unity kompiliert sie trotzdem, weil sie unter Assets/ liegt — ein Build aus dieser Arbeitskopie enthält sie, ein Build aus einem frischen Klon nicht.
Warum das zählt
Ein Beta-Build, der aus der Arbeitskopie gebaut wird, zeigt jedem Tester ein Diagnose-Overlay, das im Repository nicht existiert. Zwei Folgen, beide teuer:
- Tester melden ein Overlay, das niemand nachvollziehen kann, weil es im Repo nicht steht.
- Umgekehrt: was sich am Verhalten dieses Overlays festmacht, lässt sich in keinem CI-Lauf und auf keinem anderen Rechner reproduzieren.
Dasselbe gilt für die übrigen untrackten Dateien im Arbeitsbaum (Screenshots, tools/art/rig_tank_hierarchy.py) — die sind harmlos, weil sie nichts kompilieren. InputGateDiagnostic.cs ist es nicht.
Was zu entscheiden ist
Entweder die Datei gehört ins Repository (dann mit .meta einchecken und sagen, wozu sie da ist), oder sie gehört gelöscht. Ein drittes gibt es nicht — eine untrackte, kompilierte Datei im Assets-Baum ist ein Build, den niemand außer einem Rechner reproduzieren kann.
Zusätzlich, unabhängig davon
Beta-Builds sollten grundsätzlich aus einem frischen Klon von main entstehen, nicht aus der Arbeitskopie. Verwandter Fallstrick, derselbe Nachmittag: die Arbeitskopie steht aktuell auf einem älteren Branch (integration/s21-review), dessen Inhalt zwar vollständig in main gemergt ist, dessen Auschecken aber noch die alte Fünf-Felder-Karte enthält. Ein Build von dort zeigt eine Karte, die es auf main seit Sprint 21 nicht mehr gibt.
Prozessbefund aus der Beta-Bestandsaufnahme. Kein Codefehler — eine Falle beim Bauen.
Befund
In der lokalen Arbeitskopie des Maintainers liegt seit längerem eine untrackte Datei:
Sie ist nicht im Repository. Unity kompiliert sie trotzdem, weil sie unter
Assets/liegt — ein Build aus dieser Arbeitskopie enthält sie, ein Build aus einem frischen Klon nicht.Warum das zählt
Ein Beta-Build, der aus der Arbeitskopie gebaut wird, zeigt jedem Tester ein Diagnose-Overlay, das im Repository nicht existiert. Zwei Folgen, beide teuer:
Dasselbe gilt für die übrigen untrackten Dateien im Arbeitsbaum (Screenshots,
tools/art/rig_tank_hierarchy.py) — die sind harmlos, weil sie nichts kompilieren.InputGateDiagnostic.csist es nicht.Was zu entscheiden ist
Entweder die Datei gehört ins Repository (dann mit
.metaeinchecken und sagen, wozu sie da ist), oder sie gehört gelöscht. Ein drittes gibt es nicht — eine untrackte, kompilierte Datei im Assets-Baum ist ein Build, den niemand außer einem Rechner reproduzieren kann.Zusätzlich, unabhängig davon
Beta-Builds sollten grundsätzlich aus einem frischen Klon von
mainentstehen, nicht aus der Arbeitskopie. Verwandter Fallstrick, derselbe Nachmittag: die Arbeitskopie steht aktuell auf einem älteren Branch (integration/s21-review), dessen Inhalt zwar vollständig inmaingemergt ist, dessen Auschecken aber noch die alte Fünf-Felder-Karte enthält. Ein Build von dort zeigt eine Karte, die es aufmainseit Sprint 21 nicht mehr gibt.