Risposta breve: Nnn ... forse.
Risposta lunga: ci sono alcune euristiche, e puoi dare un'occhiata allo Git transfer protocols per ottenere alcune informazioni.
La mia osservazione personale è che per la maggior parte dei progetti basati su testo, la dimensione di .git è raramente superiore alla dimensione di pagamento, anche per progetti molto vecchi.
Il recupero di info/refs
indica il numero di tag e rami nel repository.
Il recupero di objects/info/packs
indica quale pacchetto ha il progetto. Puoi quindi fare una richiesta HEAD (supponendo che sia HTTP) su objects/pack/pack-WHATEVERTHEIDIS.pack
per vedere quanto sono grandi i file del pacchetto. Questo ti darà un limite inferiore per le dimensioni del repository.
Se lo spazio su disco è il problema (il disco è economico, acquistane uno nuovo), puoi fare uno git clone --bare
per risparmiare lo spazio di un pagamento. È quindi possibile clonare quella versione locale e nuda per ottenere un checkout completo.
Infine, se sei intelligente, puoi far camminare l'albero degli oggetti facendo una richiesta HEAD per ottenere la dimensione di ogni oggetto e cancellare l'oggetto GET dopo aver ricevuto solo l'intestazione (ignorando la parte dati). Questo ti darebbe la dimensione del repository senza dover scaricare l'intero repository.
Puoi 'ssh' nel server e fare un' du'? –
No, non posso 'ssh' dentro. –
Penso che saremmo in grado di aiutare meglio se sapessimo perché avete bisogno di queste informazioni. – Schwern