Il flag --abbrev-commit
può essere utilizzato insieme a git log
e git rev-list
per mostrare prefissi parziali invece degli hash SHA-1 di 40 caratteri di oggetti commit. Secondo i Pro Git book,Nel mio repository, per quanto tempo deve essere il prefisso hash più lungo per evitare qualsiasi sovrapposizione?
il valore di default di utilizzare sette personaggi, ma li rende più a lungo se necessario per mantenere l'SHA-1 non ambigua [...]
Inoltre, brevi SHAs sono almeno 4- personaggio lungo Sempre secondo il libro Pro Git,
In genere, da otto a dieci caratteri sono più che sufficienti per essere unici all'interno di un progetto.
Ad esempio, il kernel Linux, che è un progetto piuttosto grande con oltre 450k commit e 3,6 milioni di oggetti, non ha due oggetti i cui SHA-1 si sovrappongono più dei primi 11 caratteri.
Dal momento che la lunghezza del prefisso più lungo necessario evitare ogni sovrapposizione tra tutti gli hash prefisso di oggetti commit (11, nel caso del kernel di Linux) è un indicatore grezzo delle dimensioni di un pronti contro termine, mi piacerebbe determinare a livello di codice la quantità corrispondente nel mio repository locale. Come lo posso fare?
Intendi http://stackoverflow.com/a/21015031/3691891? –
@ArkadiuszDrabczyk Non esattamente. Il tuo link fornisce solo un metodo per determinare quanto può essere breve il prefisso di un dato hash di commit per evitare sovrapposizioni con altri hash. Sto chiedendo il massimo della quantità su tutti gli hash di commit nel repository. – Jubobs
Non è * possibile * rigorosamente * determinare la lunghezza del prefisso richiesta senza esaminare tutti i commit in un repository. In linea di principio, un repository potrebbe avere solo due commit identici nei primi 39 caratteri. E la lunghezza richiesta effettiva potrebbe cambiare con il prossimo commit. –