C'è un modo per forzare git a non creare index.lock per operazioni di sola lettura come git status
?Git: non creare index.lock per operazioni di sola lettura
Sto visualizzando lo stato del mio albero di lavoro in tmux, aggiornato ogni due secondi. Fondamentalmente analizzo l'output di git status --branch --ignored --porcelain
e alcuni altri comandi. Il problema è che per i grandi repository git status
possono essere necessari alcuni secondi. Durante questo periodo non posso eseguire altri comandi Git perché il repository è bloccato.
EDIT:
Ecco alcune immagini della parte rilevante della mia linea tmux. Descrizione per i simboli da sinistra a destra:
In sincronia con il ramo remoto | 2 modifiche graduali | 1 modifica non modificata | 5 file ignorati | 1 partita:
In sincronia con il ramo remoto | nessuna modifica nell'albero di lavoro | 5 file ignorati:
Un ramo remoto avanti di 1 commit | nessuna modifica nell'albero di lavoro | 5 file ignorati:
Buona domanda; 'status' blocca l'indice in modo che possa aggiornare la cache delle statistiche. Non vedo un modo ovvio di disattivarlo dalla documentazione, ma vale la pena di sapere cosa si sta arrendendo: le chiamate future di "status" dovranno ricalcolare il lavoro che sarebbe stato memorizzato nella cache. Questo potrebbe non essere ottimale nel tuo script. –
Perdere il cacheing non è un problema per me. Come ho detto, è usato solo per visualizzare lo stato attuale dell'albero di lavoro. Eseguo 'git status' ogni tanto e poi comunque. –
* Analizzo l'output di 'git status'.* Non dovresti farlo, perché 'git status' è * porcellana * (alto livello). Dovresti invece analizzare l'output dei comandi Git di livello inferiore. – Jubobs