Gibt es eine Möglichkeit, git zu zwingen, index.lock für schreibgeschützte Operationen wie git status
nicht zu erstellen?Git: index.lock für schreibgeschützte Operationen nicht erstellen
Ich zeige den Status meines Arbeitsbaums in tmux an und werde alle paar Sekunden aktualisiert. Grundsätzlich parse ich die Ausgabe von git status --branch --ignored --porcelain
und ein paar andere Befehle. Problem ist, dass für große Repositories git status
ein paar Sekunden dauern kann. Während dieser Zeit kann ich keine anderen Git-Befehle ausführen, da das Repository gesperrt ist.
EDIT:
Hier sind einige Bilder von dem betreffenden Teil meiner tmux Linie. Beschreibung für Symbole von links nach rechts:
In Synchronisation mit Remote Branch | 2 gestufte Änderungen | 1 nicht geänderte Änderung | 5 ignorierte Dateien | 1 Stash-Eintrag:
Synchron mit Remote-Zweig | keine Änderungen im Arbeitsbaum | 5 ignorierte Dateien:
Ahead Remote-Zweig von 1 commit | keine Änderungen im Arbeitsbaum | 5 ignorierte Dateien:
Gute Frage; 'status' sperrt den Index, so dass der Statistik-Cache aktualisiert werden kann. Ich sehe keinen offensichtlichen Weg, das aus der Dokumentation zu entfernen, aber es ist wert zu wissen, was du aufgibst: zukünftige Status-Aufrufe müssen die Arbeit neu berechnen, die zwischengespeichert worden wäre. Dies ist möglicherweise nicht optimal in Ihrem Skript. –
Der Cache zu verlieren ist kein Problem für mich. Wie gesagt, es wird nur verwendet, um den aktuellen Status des Arbeitsbaums anzuzeigen. Ich laufe trotzdem 'git status'. –
* Ich analysiere die Ausgabe von 'git status'.* Das solltest du nicht machen, denn 'git status' ist * Porzellan * (High-Level). Sie sollten stattdessen die Ausgabe von Git-Befehlen niedrigerer Ebene analysieren. – Jubobs