मैंने विभिन्न मूल्यों के साथ कुछ परीक्षण चलाए। Twalbergs उत्तर पर एक टिप्पणी होने के लिए यह बहुत बड़ा है।
मेरी कंपनी का एक कोड बेस है जो svn, mercurial, और अब गिट में रहा है। यह 10 साल पुराना है, 21,000 काम करता है।
पैक से पहले यह 3.1 जीबी था। Repack के बाद, यह निम्नलिखित मानों के लिए shrunk:
(हर बार 3.1 जीबी फ़ोल्डर के ताजा क्लोन पर repack चला रहा है)।
git repack -a -d --depth=50 --window=10 -f
141.584 MB
git repack -a -d --depth=250 --window=1000 -f
110.484 MB
git repack -a -d --depth=500 --window=1000 -f
110.204 MB
उन्होंने मेरे क्वाड कोर मैक पर क्रमश: 5, 15 और 30 मिनट का समय लिया।
अद्यतन:
मैं दूसरे repack (250,1000) ले लिया और 500 के साथ repack reran, और 1000 अगर वहाँ एक ताजा 3.1gb रेपो और एक पहले से ही के बीच कोई अंतर है देखने के लिए 110 एमबी रेपो repacked।
git repack -a -d --depth=250 --window=1000 -f
110.484 MB
git repack -a -d --depth=500 --window=1000 -f
110.212 MB
फैसले: repack 500, 1000 की परवाह किए बिना एक 110.2 एमबी फ़ाइल के परिणामस्वरूप यदि वह पहले से पैक किया गया था या नहीं।
Update2:
मैं अगर एक पहले से ही repacked रेपो पर कम मूल्यों के साथ एक repack चल आकार बढ़ाने के लिए कारण होगा आगे उत्सुक था।
git repack -a -d --depth=500 --window=1000 -f
110.204 MB
git repack -a -d --depth=50 --window=10 -f
142.056 MB
फैसले: repack वजह से रेपो आकार 110 एमबी से वापस ~ 140 MB तक balloon को
'Git gc' पर्याप्त होना चाहिए और आसान तरीका – CharlesB
संदर्भ के लिए है, यहाँ का सारांश है लिनस टोरवाल्ड्स से ईमेल थ्रेड जो गिट जीसी पर गिट रेकैक का उपयोग करने के तर्क को समझाता है http://metalinguist.wordpress.com/2007/12/06/the-woes-of-git-gc-aggressive-and-how-git -डेल्टस-वर्क/ – spuder