2012-04-15 25 views
12

ben olarak benim 'SECC' şubesinden bir rebase çalışılıyorGYTE Rebase Dosyalar

[Bu soru aslında bir cevap yoktu git crash during rebase yeniden açıyor]:

$ git rebase main 
First, rewinding head to replay your work on top of it... 
fatal: Out of memory, malloc failed (tried to allocate 553656577 bytes)   # about 0.5 GB 
$ git rebase --abort 
No rebase in progress? 

Başarısızlık, her iki dalın ve ortak atalarının her biri 0,5 GB olan üç .dat dosyasına sahip olmasıyla ilgilidir.

Bu durumda nasıl bir rebase yapabilirim?

Ek bilgi:

  • A 'git ana birleştirme' gayet güzel çalışıyor.
  • Artırıcı .gitattributes '* .dat merge = keepTheirs' ile ölümcül önlemedi.
  • * .dat dosyaları farklıdır.
  • Diğerlerini yeniden oluşturmak için * .dat dosyalarını kaldırmaya ve ardından * .dat öğesini eklemeye hazırım. Ama nasıl?
  • Ben senin makine 'git rebase' değil, dizin bir munged durumda olduğunu puan başarısız kadar yeterince büyük olup olmadığını bilemezsiniz budala 1.7.9.4
+0

Geçerli şube için bir yama oluşturabilir, yeniden oluşturmaya çalıştığınız yerden yeniden oluşturabilir ve düzeltme ekini uygulayabilir misiniz? – vcsjones

+0

bir video dosyasını veya bir dosyayı kontrol eden bir versiyon mu yaşıyorsunuz? – KurzedMetal

+0

Test ortamı oluşturmak için kullanılan flash bellek görüntüleridir. Ama ne olursa olsun, şimdi kaynak kontrolü altındalar ve kaynak kontrolü altındaki her şeyle yeniden oluşturulmaları gerekiyor. – GoZoner

cevap

1

kullanıyorum. Yeniden düzenleme sırasında başka bir şube (ana) kontrol edildi, böylece 'secc' değişiklikleri buna uygulanabilirdi. Kurtar ve devam:

git checkout secc 

rebase başarısız olması size iki seçenek var kaydetti ettik,: Rebase gerekli değilse, gitmek

  1. 'git ana birleştirme'
  2. daha büyük bir makine alın ve Sen, 0.5GB dosyaları görmezden rebase yapmak ve sonra geri bu giga dosyaları almak için pratik bir seçenek yok

'git ana rebase' yeniden deneyin.

1

Yorumlarda, daha fazlasını içeren bir bilgisayarla aynı şeyi yaptığınızı söylediniz, bu durumda 32 GB, bellek sorunu çözdü. Buna dayanarak, ilk denediğiniz makinede bunu yapmak için çok az hafızaya sahip olduğunuzu söyleyebilirim. .git/info/attributes bu koyarak

+1

Bir program çöküyor ve çalışma dizini çöpe atılmış durumda (ama kurtarılabilir) bıraktığında, 'Oh, daha büyük bir makineye ihtiyacım var' diyebilirsiniz. - bu bir çözüm değil. – GoZoner

+0

Sorun çok az hafızaya sahip ve b) git yanlış şekilde ele alıyor: a) bir şeyleri yapabiliriz, b) muhtemelen Git geliştiricileri – eis

+0

'a bildirilmesi gereken bir şeydir. Tabii ki, bu zaten Git'in en son sürümüne sabitlenmediyse de, eğer inceliksiz bir şekilde başarısız olsa bile, bunu yapmak için hala çok az hafızaya sahip olacaksınız. – eis

0

Dene:

# whatever gets them... 
yourfile binary -delta merge=binary 
*.yourext binary -delta merge=binary 

bu dosyaların değiştirirseniz birleştirme çakışmaları neden olacak ve onlarla ne yapacağını anlamaya gerekecek. gitattributes kontrol ve diğer birleştirme stratejileri için doc rebad, ben bile burada tehlikeli olanları adlandırmayacağım.

Çekirdekdeki her şeyi koşturmaya çalışan gerçek birleştirme olduğundan emin değilim, ama denemeye değer görünüyor.