2016-04-12 11 views
4

Dies ist meine Liste von git LFS Dateiengit LFS ls-files: Asterisk (*) vs. Dash (-)

verwaltet

$ git lfs ls-files

b1d5dd29dd - file1.zip 
27d3073f43 - file2.zip 
fb4e699c05 * file3.zip 

Warum eine Datei mit einem Stern/Stern haben (*) daneben, während die anderen einen Strich (-) neben sich haben?

Das git lfs Wiki scheint anzuzeigen, dass (*) erwartet wird.

https://github.com/github/git-lfs/wiki/Tutorial

git lfs status zeigt alles klar (nichts begangen/gedrückt/inszeniert werden).

Antwort

4

Dies wurde nicht in the ls-files man page, also I dug into the source code to find the answer dokumentiert.

func lsFilesMarker(p *lfs.WrappedPointer) string { 
    info, err := os.Stat(p.Name) 
    if err == nil && info.Size() == p.Size { 
     return "*" 
    } 

    return "-" 
} 

*wahrscheinlich bedeutet, dass die Datei auf der Festplatte ist die gleiche Größe wie die im Repository oder ein Index, hängt davon ab, was in WrappedPointer.Size ist. It was added in this commit, but not explained. Wie auch immer, es scheint ein schlechter Test zu sein, da sich der Inhalt ändern kann, aber nicht die Größe.

Beachten Sie, dass the - code path is never tested. Vielleicht möchten Sie let them know über das Fehlen von Tests und Dokumenten.

+0

Basierend auf der vierten Zeile der Commit-Nachricht würde ich annehmen, dass das '*' angibt, dass die Datei ein LFS-Zeiger ist, und ein '-' gibt an, dass die Datei ein vollständiges Objekt ist. Aber das ist nur eine Vermutung. – cowlinator

0

Genau wie in git zeigt das '-' an, dass die Datei im Arbeitsverzeichnis gelöscht wurde. Die beiden Dateien mit '-' wurden tatsächlich versehentlich gelöscht. Das Wiederherstellen brachte das '*' zurück.

Was mich abschreckte war, dass git lfs status nichts berichtet, aber ich denke, ich interpretiere es falsch.

+0

Welcher git-Befehl verwendet '-', um anzugeben, dass eine Datei gelöscht wurde? – Schwern