git gc على الجهاز مع الحصص
سؤال
سؤال بسيط، أحاول تشغيل git gc
على آلة مع حصة. Pre-GC، أنا في حوالي 18 جيجابايت من الاستخدام، كل ذلك تقريبا مستودع جيت المستنسخ. حد القرص الخاص بي هو 25 جيجابايت. أثناء ال git gc
العملية، يتم كتابة ملفات مؤقتة كافية على القرص لضرب الحد الخاص بي وبالتالي تسبب git gc
العملية للفشل.
يمكنني حذف .git/objects/pack/tmp_pack_*
بعد العملية الفاشلة والعودة إلى 18 جيجابايت من الاستخدام، لكنني أحب حقا إكمالها بالفعل git gc
واستعادة الأداء قليلا.
هل هناك خيار خيالي (أو سلسلة من أوامر GIT الأخرى) التي يمكنني استخدامها لا تنطوي على الكتابة الأولى> 7GB من الملفات المؤقتة إلى القرص؟
المحلول
أي جزء من gc
مهم بالنسبة لك؟ يمكنك محاولة تشغيل git-prune
و git-repack
أجزاء بشكل منفصل. مع git-prune
, تأكد وتحديد تاريخ قطع مع --expire
اختيار. إذا كان هناك الكثير من الأشياء الفضفاضة في ريبو الخاص بك، فإن الحصول على الخروج من الطريق سيكون مفيدا أولا. *
مع git-repack
, ، يمكنك الفوضى مع إعدادات العمق والنوافذ للحصول على شيء صغير بما يكفي لتشغيله داخل المساحة لديك.
* لا أدعي فهم جميع القضايا المعنية بالكامل تماما، لكنني ألا أتلاحظ أن القطر يأتي بعد إعادة صياغة رمز GIT-GC.
نصائح أخرى
يبدو أن أفضل حل هو أن يسألها عن حصة أكبر، على الرغم من أنني ما زلت مهتما بسماع الحلول. اليوم كانوا يشعرون سخية، ولكن غدا ... :)
git prune
هو اقتراح ممتاز، مكالمة جيدة JeFromi.
شيء آخر يمكنك القيام به هو ضغط ملفاتك الأخرى؛ git gc
; ؛ إلغاء ضغط.
7z
يحصل على ضغط مذهل، ولكن لن يحفظ شاددا شاددا ومالك / مجموعة UNIX، IIRC. إذا كان لديك حصة، فربما تكون الملفات مملوكة من قبل حسابك، لذلك لا تقلق في النتيجة الأولى. لكن أكثر أمانا tar c --lzma
إذا كان لديك، أو فقط tar czf
أو cjf
. وبعد إذا كان لديك الكثير من الملفات الصغيرة، فقد يكون التغذية الخارجي (؟) إلى حد كبير الحجم.