Wenn ich 'git status' drücke, werden 2 Ordner angezeigt, die Dateien enthalten, die vor langer Zeit verfolgt wurden:
%Vor%Git GUI zeigt nichts wie erwartet.
portablegit 1.7.1 verwendet, aber versucht 1.7.0.2 - die gleichen Ergebnisse.
Was kann das verursachen?
%Vor%@Charles Bailey
%Vor%@Charles
$ git ls-tree -r KOPF | grep -i helfer 100644 Blob 843de27f850308786140a7c09f67b5ef99184630 src / Web / Helfer / HtmlHelperExtensions.cs
Charles Bailey diagnostizierte das Problem korrekt in den Kommentaren: " git add
" bei einem case-insensitiven Os.
Es ist mit dem Problem 286 von msysgit verknüpft: "Groß- / Kleinschreibung von Verzeichnisnamen ", und das Problem bleibt (wiederum für Verzeichnisse ), selbst wenn Sie core.ignorecase
auf true setzen.
Wenn Sie " src\Web
" hinzufügen (mit einem ' W
'), wird nichts hinzugefügt, wenn Ihr Index bereits " src\web
" enthält (Kleinbuchstaben ' w
').
Ein Patch wurde vorgeschlagen, aber abgelehnt:
%Vor%Der Ordner scheint als untrailed aufgeführt zu sein, weil
directory_exists_in_index()
versucht, den alten Namen mit dem neuen Namen zu vergleichen, und schließlich keine Übereinstimmung für die gefunden wird neuer Ordner (obwohl die darin enthaltene Datei nachverfolgt wird!).
Ein sehr unhöflicher Patch (unten im Bild) wurde geschrieben, um das Problem zu umgehen.
Nun ... für meinen Minimalfall funktioniert das - das Verzeichnis wird nicht mehr als untracked gelistet. Aber ich erwarte, dass dies ein BROKEN-Patch ist, zumindest aus folgendem Grund: Die Groß- und Kleinschreibung sollte die binäre Suche unterbrechen, da das Gehäuse die falsche Position zurückgeben sollte, wenn ich mehr Dateien im Index habe.
Sie müssen also:
Web
' in ' web
' in Ihrem Arbeitsverzeichnis (Dateisystem) web
' in ' Web
' im Index ( git mv src/web src/Web
) in Ihrem Index.