Büyük çıplak git deposunun temizlenmesi başarısız oluyor


1

Git deposunu temizleyemiyorum. Eğer denersem, bu hata mesajını alıyorum:

$ git gc
Counting objects: 8828, done.
fatal: Cannot handle files this big
error: failed to run repack

Google'a gidersem, kelimenin tam anlamıyla yalnızca 2 sonuç vardır: Bu soru ve bu soruyu ilk gönderdiğimden 2 dakika sonra gönderilen bir pastebin girişi olarak hata mesajı Yani başka hiç kimsenin sorunu yok gibi görünüyor.

Verilen ve git ile izlenen 4.8 GB'lık bir dosya var ve git dizüstü bilgisayarımda çalışırken yaklaşık 8 ila 9 GiB sanal ram alıyor git gcve raspi'mde yalnızca 1 GB fiziksel ram var. Ancak, genellikle 1 GiB takas vardır ve ben sadece bu işlemi yapmak için 30 GiB takas ekledi. Bu yüzden yeterince koç olmalı.

Ne yazık ki, hata mesajı, temizleme komutunun bu kadar büyük dosyaları işleyememesinin nedenini içermiyor. Bu yüzden, sistemimin sınırlayıcı özelliğinin ne olduğunu bilmiyorum.

Sorun nedir ve ahududu pi üzerinde temizlik yapmak mümkün mü? (Bir masaüstü bilgisayara aktarmak bana iyi bir çözüm gibi görünmüyor.)

Aslında raspi kullanarak daha büyük depoları temizlemeyi planlamıştım, çünkü yine de çalışıyor ve bu şekilde bilgisayarımın saatlerce çalışmasına gerek kalmayabilir.

Belki de repoyu klonlamanın temizlenmiş bir repo vereceğini düşündüm. Ancak, bu çıktıyı alıyorum:

$ git clone ../Documents
Cloning into 'Documents'...
done.
fatal: Cannot handle files this big   
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

Ancak, --bareclone komutuna ekleme anında anında hata verir. (Muhtemelen bazı ext4 sihrleri devam ediyor, bu yüzden dosyalar yazı üzerine kopyalanıyor.) Söylemeye gerek yok, hiçbir temizlik yapılmıyordu. Ama bu bir ipucu içerebilir, o yüzden size haber vereyim.


Repoyu başka bir makineye kopyalamanız, orada yapmanız ve geri kopyalamanızdan alıkoyacak bir şey var mı?
ethanwu10

Bu, ssh aracılığıyla dosyalara erişmek için dizüstü bilgisayarımı kullanarak temizlik yapmak gibi bir şey olur. (Bunu ssh ile giriş yapmak ve komutu oradan çalıştırmakla karıştırmayın.) Fakat bunun mümkün olmasının bir nedeni göremiyorum. Buradaki sınırlayıcı şey nedir? Bu ram olamaz çünkü dizüstü bilgisayarımda yalnızca 16 GB'lık ve takas yok, Raspi'm artık takas dahil iki katından biraz fazla. CPU gücü olamaz çünkü bu daha uzun sürmesini sağlardı.
UTF-8

Sadece işi yapmanız gerekiyorsa, RPI'da gc komutunu çalıştırmak zorunda değilsiniz, ancak sorunuz özellikle Pi'de yapmakla ilgili ise, açıklığa kavuşturmak isteyebilirsiniz
ethanwu10

Peki ya sadece bu dosyayı silmek? Yapabilir git gcve daha sonra tekrar ekleyebilirsiniz (gerekirse). En zarif yol değil, pragmatik.
duenni

@duenni Bu dosyayı silmek istemiyorum. Bilgisayarımdaki en önemli dosyalardan biri ve zaman zaman değiştiği için elbette gitmesini istiyorum. Sadece bu dosyayı izlemekten şüpheleniyorum, git bir nedenimle raspi üzerindeki git repo'yu temizleyemiyor. Gerçekten bilmiyorum. Hata mesajı çok açıklayıcı değil. Aynı zamanda büyük bir nesne dosyası olabilir. Muhtemelen sadece 4,8 GB'lık bir dosyayı tutan 4,8 GB'lık bir nesne dosyası ve 6 GB'lık bir dosya vardır objects/pack.
UTF-8

Yanıtlar:


1

Git'teki bir hataydı. Git posta listesindeki adamlara problemleri anlattım ve düzelttiler. Yamalar en yeni birkaç sürümde.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.