11 Punkte von xguru 2022-11-24 | 9 Kommentare | Auf WhatsApp teilen
  • 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

 
edunga1 2022-11-24

Interessant, haha. Bei den ersten 8 Stellen sind die Junk-Daten auch nicht gerade lang.

 
bbulbum 2022-11-24

hahaha ... ich bin echt neugierig, was Linus dazu sagen würde ..

 
ruinnel 2022-11-24

Irgendwie erinnert mich das an das Berechnen von Blockchain-Nonce-Werten....

 
kallare 2022-11-24

Man könnte einfach svn verwenden, dann würden sich die Revisionsnummern schön sauber aufbauen …

 
mse9000 2022-11-24

Entschuldigung, aber wenn die erste 0000000 ist, sollte die zweite dann nicht 0000001 sein? Ich glaube, da ist Ihnen wohl ein Tippfehler unterlaufen, haha..

 
xguru 2022-11-24

Uff, hehe, ich habe es korrigiert.

 
nicewook 2022-11-24

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?

 
kandk 2022-11-24

Das ist ja wie Bitcoin-Mining, haha.

 
galadbran 2022-11-24

GitHub als Börse!