- Die erste Commit beginnt mit einem Hash wie
0000000, die zweite mit 0000001, sodass die Nummerierung intuitiv sichtbar bleibt
- Um solche Hash-Präfixe zu finden, muss der SHA-1-Hash durch das Einfügen von Junk-Daten in die Commit-Message angepasst werden
- Auf einem MacBook lässt sich mit dem Tool
githashcrash ein 8-stelliger Hash-Präfix in 5 Minuten finden, ein 6-stelliger in unter 1 Sekunde
- Mit
bash-glue wird das unter dem Namen git linearize automatisiert
lucky-commit wird als Backend für die Hash-Erzeugung verwendet; mit GPU ist die Generierung 20x schneller möglich
→ lucky-commit verändert die Commit-Message nicht mit Junk-Text, sondern mit unsichtbaren Leerzeichen, wodurch das Ergebnis auch optisch ansehnlich bleibt
9 Kommentare
Interessant, haha. Bei den ersten 8 Stellen sind die Junk-Daten auch nicht gerade lang.
hahaha ... ich bin echt neugierig, was Linus dazu sagen würde ..
Irgendwie erinnert mich das an das Berechnen von Blockchain-Nonce-Werten....
Man könnte einfach svn verwenden, dann würden sich die Revisionsnummern schön sauber aufbauen …
Entschuldigung, aber wenn die erste
0000000ist, sollte die zweite dann nicht0000001sein? Ich glaube, da ist Ihnen wohl ein Tippfehler unterlaufen, haha..Uff, hehe, ich habe es korrigiert.
Das wirkt schon fast zwanghaft pedantisch.
Trotzdem ist es beeindruckend, dass Sie auf die Idee gekommen sind und sie auch umgesetzt haben.
Ist das letztlich einfach nur Brute-Force?
Das ist ja wie Bitcoin-Mining, haha.
GitHub als Börse!