Düzenleme: gibi bazı benzer soruların aksine Git için çok GB SVN repo Hareketli veya /programming/540535/managing-large-binary-files-with-git My senaryo olduğunu birkaç alt projeleri içermez Kolayca git alt modellerine, ne de git-ek için uygun olan bir çok büyük ikili dosyalara dönüştürülebilir. İkili dosyaların, aynı revizyonun ana kaynak koduna sıkıca bağlanmış test paketi olduğu, grafik gibi zaman varlıkları derlediklerinde olduğu gibi tek bir depo.
Svn'den eski orta / büyük boyutlu (50 kullanıcı, 60k revizyon, 80Gb geçmiş, 2Gb çalışan kopya) kod deposu değiştirmeyi araştırıyorum. Kullanıcı sayısı arttıkça, bagajda çok fazla karmaşası vardır ve özellikler kod incelemesini zorlaştıracak şekilde birçok komisyona dağılır. Ayrıca dallanma olmadan kötü kodları "kapamak" için bir yol yoktur, yorumlar sadece bagaja yüklendikten sonra yapılabilir . Alternatifleri araştırıyorum. Gitmeye gidebileceğimizi umuyordum, ama bazı problemlerim var.
Mevcut reponun git gitmesine kadar olan sorunu büyüklük. İçeride çok fazla eski gemi var ve git'e dönüştürürken -filter şubesi ile temizlenmesi, büyüklüğüyle 5-10GB'a kadar boyutta kesebiliyor. Bu hala çok büyük. Büyük depo boyutunun en büyük nedeni, testlere girdi olan çok sayıda ikili belgenin bulunmasıdır. Bu dosyalar .5mb ile 30mb arasında değişir ve yüzlerce var. Ayrıca oldukça fazla değişiklik var. Alt-modüller, git-ek vb.
Yani git'in dağınık doğası gerçekten onu benimsemeyi engelleyen şey. Gerçekten dağınık umurumda değil, sadece ucuz dallanma ve güçlü birleştirme özellikleri istiyorum. Git kullanıcılarının% 99.9'unun yaptığı gibi, kutsanmış, çıplak bir merkezi depo kullanacağız.
Git'i kullanırken neden her kullanıcının tam bir yerel geçmişe sahip olması gerektiğinden emin değilim? İş akışı merkezileşmemişse, kullanıcıların disklerinde bu ne yapıyor? Git'in son sürümlerinde, yalnızca yakın geçmişe sahip sığ bir klon kullanabileceğinizi biliyorum. Sorum şu: bunu bütün bir ekip için standart çalışma şekli olarak yapmak mümkün mü? Git her zaman sığ olacak şekilde yapılandırılabilir, böylece yalnızca merkezi olarak tam bir geçmişe sahip olabilirsiniz, ancak varsayılan olarak kullanıcılar yalnızca 1000 devir geçmişe sahip midir? Elbette ki bu seçenek sadece 1000 devir sayısını git'e çevirmek ve arkeoloji için svn deposunu tutmaktı. Ancak bu senaryoda, test dokümanlarında yapılacak birkaç bin revizyondan sonra aynı problemle tekrar karşılaşacağız.
- O birçok ikili dosyaları içeren büyük repo ile budala kullanmak için iyi bir iyi uygulama nedir do geçmişini ister misin? En iyi uygulamalar ve öğreticiler bu durumdan kaçınıyor görünmektedir. Birkaç büyük ikili dosya sorununu çözerler ya da ikili dosyaların tamamen düşürülmesini önerirler.
- Sığ klonlama normal bir çalışma şekli olarak kullanılabilir mi, yoksa "kesmek" mi?
- Alt modüller, ana kaynak revizyonu ve alt modül revizyonu (derleme zamanı ikili bağımlılıklarında veya birim test takımında olduğu gibi) arasında sıkı bir bağımlılığın olduğu kod için kullanılabilir mi?
- Git deposu (tesis içi) için "çok büyük" ne kadar büyük? 4GB'a indirebilirsek değişmekten kaçınmalı mıyız? 2GB?