Kısa süre önce bir BSD tartışma grubunda 2013-04-29 tarihli bir yayın buldum
http://openbsd-archive.7691.n7.nabble.com/Why-does-OpenBSD-use-CVS-td226952.html
afişin iddia ettiği yer:
Git rebase'i kullanarak bir kez karma bir çarpışmaya girdim.
Ne yazık ki, iddiasıyla ilgili hiçbir kanıt sunmuyor. Ama belki onunla iletişime geçmeye ve ona bu sözde olayı sormaya çalışıyorsun.
Ancak daha genel bir düzeyde, doğum günü saldırısından dolayı, SHA-1 karma çarpışma şansı 1'dir (2, 80).
Bu kulağa çok fazla geliyor ve kesinlikle dünyanın tüm Git depolarında bulunan tek tek dosyaların toplam sürüm sayısından çok daha fazla.
Ancak, bu yalnızca sürüm geçmişinde kalan sürümler için geçerlidir.
Bir geliştirici yeniden temellendirmeye çok fazla güveniyorsa, bir şube için her yeniden iskan çalıştırıldığında, o dalın tüm sürümlerindeki (veya dalın yeniden temel alan kısmındaki) tüm taahhütler yeni karmalar alır. Aynı durum "git filter-branch" ile yapılan her dosya için de geçerlidir. Bu nedenle, "rebase" ve "filtre dalı", hepsi gerçekte tutulmamasına rağmen, zaman içinde üretilen karma sayısı için büyük çarpanlar olabilir: Sık sık, yeniden temellendirdikten sonra (özellikle bir dalı "temizlemek" amacıyla) ), orijinal şube atılır.
Ancak çarpışma, rebase veya filtre dalı sırasında meydana gelirse, yine de olumsuz etkileri olabilir.
Başka bir şey git depolarındaki toplam karma varlık sayısını tahmin etmek ve bunların pow'den ne kadar uzakta olduklarını görmek olacaktır (2, 80).
Diyelim ki yaklaşık 8 milyar insanımız var ve hepsi git koşuyor ve eşyalarını kişi başına 100 git deposunda tutuyor. Ayrıca, ortalama deponun 100 taahhüt ve 10 dosya olduğunu varsayalım ve bu dosyalardan yalnızca biri işlem başına değişir.
Her revizyon için, ağaç nesnesi ve işleme nesnesinin kendisi için en az bir karmamız vardır. Değişen dosya ile birlikte her revizyon için 3 karma, dolayısıyla depo başına 300 karmaya sahibiz.
8 milyar insanın 100 deposu için bu hala pow'den (2, 80) uzak olan pow (2, 47) verir.
Bununla birlikte, bu yukarıda belirtilen çarpma etkisini içermez, çünkü bu tahmine nasıl dahil edileceğimden emin değilim. Belki de bir çarpışma olasılığını önemli ölçüde artırabilir. Özellikle uzun bir taahhüt geçmişinin (Linux Çekirdeği gibi) birçok insan tarafından küçük değişiklikler için yeniden kullanıldığı, ancak yine de etkilenen tüm taahhütler için farklı karmalar oluşturan çok büyük depolar varsa.
I've been informed by the git Gods that the chances of a SHA1 collision is the same as the Earth being sucked up into the black hole created by the CERN accelerator. If this is indeed true, then there's no need for that extra memcmp.
, kaynak: lwn.net/Articles/307281