2014-06-30 12 views
21

मेरी समस्या का सारांश: बिटबकेट पर मेरे निजी भंडारों में से एक अचानक आकार में दोगुनी से अधिक हो गया जब मैंने कुछ सौ बाइट्स को दो मौजूदा फाइलों में जोड़ा। रेपो अब 2 जीबी से अधिक है, जिसने बिटबकेट को इसे केवल पढ़ने के लिए मोड में डाल दिया है। चूंकि यह केवल-पढ़ने योग्य मोड में है, इसलिए मैं उन परिवर्तनों को धक्का नहीं दे सकता जो रेपो आकार को कम कर देंगे। (22 पकड़ो।)बिटबकेट पर गिट रेपो आकार को कैसे कम करें?

विवरण: मेरी कंपनी ने हाल ही में बिटबकेट पर गिट रिपॉजिटरीज़ की मेजबानी शुरू कर दी है। मेरे द्वारा प्रभारी भंडारों में से एक का आकार लगभग 973 एमबी था, जो असंगत रूप से 1 जीबी मुलायम सीमा के करीब था। रेपो आकार को कम करने के लिए, मैंने बिटबकेट प्रलेखन आलेख Split a repository in two में दिए गए निर्देशों का पालन किया और 450 एमबी के दस्तावेज और ऑनलाइन सहायता फ़ाइलों को अपने निजी रेपो में स्थानांतरित कर दिया। इसके बाद मैंने बिटबकेट दस्तावेज लेख Reduce repository size और Maintaining a git repository में निर्देशों का पालन किया, विशेष रूप से:

git count-objects -vH ने मुझे 973 एमबी का आकार पैक दिखाया।

मैं दस्तावेज़ निर्देशिका को हटाने के लिए git filter-branch --index-filter 'git rm --cached --ignore-unmatch doc' HEAD चला गया (जो सामग्री मैं नए रेपो में ले जाया गया था)।

git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d 
git reflog expire --expire=now --all 
git gc --prune=now 

git count-objects -vH तो मुझे 881.1 MiB के आकार-पैक से पता चला है और du -sh .git/objects 882M लौटे:

मैं संदर्भ समय सीमा समाप्त हो और छँटाई करने के लिए निम्न कमांड भाग गया। मैं निराश है कि 450MB पर जाने 90MB की तुलना में कम से रेपो आकार को कम किया गया था, लेकिन फिर भी Bitbucket में परिवर्तन धक्का दिया:

git push --all --force 
git push --tags --force 

रेपो की Bitbucket प्रति के लिए सेटिंग पृष्ठ 973MB के आकार को दिखाने के लिए जारी रखा। मैंने लॉग आउट किया, ब्राउज़र को रीफ्रेश किया, वापस लॉग इन किया, लेकिन इससे मदद नहीं मिली - रेपो आकार 973 एमबी पर रहा।

आज सुबह (ऊपर वर्णित परिवर्तनों के तीन दिन बाद) मैंने दो मौजूदा फाइलों में कुछ मामूली परिवर्धन किए जो फाइलों के आकार को 1KB से कम करके बढ़ाए, और उन्हें मेरे स्थानीय रेपो में आमंत्रित किया, फिर बिट्टबकेट में बदलाव को धक्का दिया। कुछ मिनट बाद मैंने रिपो के लिए बिटबकेट पेज पर एक नज़र डाली और मुझे एक लाल चेतावनी बैनर को सूचित किया कि "यह रेपो 2 जीबी सीमा से अधिक है और केवल पढ़ने के लिए मोड में है।" सेटिंग पेज अब कहता है कि रेपो का आकार 2.3 जीबी है।

बिटबकेट के अनुसार, पिछले तीन दिनों में रिमोट रेपो पर होने वाली कुछ सौ बाइट्स की दो फाइलों में जोड़ा गया एकमात्र गतिविधि निश्चित रूप से एकमात्र गतिविधि थी। हो सकता है कि पुश आकार में दोगुनी से अधिक रेपो का कारण नहीं हो सकता है, लेकिन दोनों घटनाएं समय पर निकटता से संबंधित थीं।

git reflog show कुछ भी नहीं देता है।

एक वैकल्पिक प्रतिलिपि में एक नई प्रतिलिपि क्लोन करना, फिर गिट गिनती-वस्तुओं को चलाने से मुझे 881.2 9 एमआईबी का आकार पैक मिलता है।

स्थानीय भंडार CentOS 6.5 सिस्टम पर है। गिट संस्करण 1.8.5.3 है।

प्रश्न

  1. क्यों रेपो से बाहर फ़ाइलों के 450MB चलती केवल 90MB द्वारा अपने स्थानीय रेपो के आकार को कम किया था?
  2. बिडबकेट पर रिमोट रेपो में भी मामूली कमी क्यों नहीं पहुंची?
  3. पृथ्वी पर रिमोट रेपो आकार 973 एमबी से 2.3 जीबी तक कैसे चला गया?
  4. मैं इसे कैसे ठीक करूं? मैं --फोर्स ध्वज के साथ भी रिमोट रेपो को धक्का नहीं दे सकता। कोई भी धक्का मुझे त्रुटि संदेश प्राप्त करता है "conq: भंडार केवल पढ़ने के लिए मोड (2 जीबी आकार सीमा से अधिक) में है। घातक: रिमोट रिपोजिटरी से नहीं पढ़ा जा सका।"
+2

ऐसा कुछ लगता है जिसे आपको बिटबकेट के समर्थन से पूछना चाहिए: -/ –

+0

@dgvid वास्तव में एक ही समस्या में चल रहा है (कुछ किलोबाइट्स के आकार के साथ एक फ़ाइल और रेपो गुब्बारे के आकार के साथ एक फ़ाइल जोड़ा) - मुझे बताएं कि आपको क्या मिल रहा है। –

+0

@ फिलब मेरा जवाब देखें। निचली पंक्ति: अज्ञात। संपर्क समर्थन के लिए – dgvid

उत्तर

23

Bitbucket तकनीकी सहायता के साथ प्रदान करने के बाद, मैं अब अपने ही कुछ प्रश्नों का उत्तर कर सकते हैं:

  1. क्यों रेपो से बाहर फ़ाइलों के 450MB चलती केवल 90MB द्वारा अपने स्थानीय रेपो के आकार को कम किया ? इतिहास में कुछ चूक गया। मैं बिल्कुल सही नहीं करता, लेकिन फ़िल्टर-शाखा कमांड कुछ चूक गया। मैं उपयोगिता BFG Repo-Cleaner चलाकर 450 एमबी द्वारा रेपो आकार को सफलतापूर्वक कम करने में सक्षम था।
  2. बिटकबेट पर रिमोट रेपो पर उस मामूली कमी को क्यों नहीं पहुंचाया गया? ऐसा हुआ, लेकिन बिटबकेट समर्थन को पर उनकी तरफ गिट जीसी चलाने चाहिए। कोई बिटबकेट अनुरोध से संपर्क कर सकता है और उन्हें रेपो पर गिट जीसी चलाने के लिए कह सकता है।
  3. पृथ्वी पर रिमोट रेपो आकार 973 एमबी से 2.3 जीबी तक कैसे चला गया? अज्ञात। बिटबकेट तकनीकी सहायता के पास इस का उत्तर नहीं था।
  4. मैं इसे कैसे ठीक करूं? बिटबकेट समर्थन से संपर्क करें। वे रिपॉजिटरी को रीड-राइट मोड में वापस रख सकते हैं ताकि आप एक छोटे रिपोजिटरी को दबा सकें और वे अपने अंत में गिट जीसी चला सकते हैं।
+5

+1 - मेरा अनुभव मूल रूप से समान था। –

+1

प्वाइंट 4: समर्थन से संपर्क करने का एक विकल्प है: [गिट रीसेट - हार्ड हेड ~ 1; गिट पुश-एफ] (https://confluence.atlassian.com/bitbucket/reduce-repository-size-321848262.html#Reducerepositorysize-Removetherepositorylimitation) - लेकिन ** पहले बैकअप लें **! –

+0

गिट रीसेट - हार्ड हेड ~ 1; गिट पुश-एफ मेरे लिए काम नहीं करता है, मुझे अभी भी सीमा संदेश खत्म हो गया है। मैंने समर्थन से संपर्क किया है, उत्तर देने का इंतजार कर रहा है:/ – Juancho

13

मैं पाया है कि सबसे आसान तरीका है Bitbucket रेपो आकार कम करने के लिए यदि आप 2GB सीमा से अधिक कर रहे है

  1. Bitbucket
  2. पर
  3. Bitbucket पर उस शाखा को हटाएँ एक शाखा बनाएं

यह रीटो पर git gc चलाने के लिए बिटबकेट को ट्रिगर करना चाहिए।

+0

पूरी तरह से मेरे लिए काम किया। – xaviert

+0

मेरे लिए भी काम किया – Tijn

+0

क्या यह केवल 2 जीबी से अधिक होने पर ही काम करता है? क्योंकि मैं 1 पर हूँ।5 जीबी और यह चाल काम नहीं कर सका। – Warface

संबंधित मुद्दे