2011-05-27 25 views
9

Bazı ht alt modülleri olan bir hg alt havuzuna sahip bir hg depomuz var. (Bunun tamamen çılgınca geldiğini biliyorum, ama google kodunda, github'daki libslerde ve bitbucket'teki modüllerdeki svn reposlarıyla çalışıyorum. Bir grup insan tarafından serbestçe kullanıma sunulan kodu kullanıyorum, WHO Ben onların kararlarından şikayet ediyorum. sürüm kontrolü - istediğim kod ve bunun için minnettarım).Neden değiştirilmese de, her zaman bir git submodule atarsınız?

bu senaryo hakkında biraz "ağaç":

Ben hg subrepository bir dosyayı değiştirmek ve taahhüt zaman, onlar değiştirilmedi bile, tüm git submodules taahhüt
+ hg repo 
    + hg subrepo 
    + git submodules 

. Ben git submodules hakkında hiçbir şey göstermez, hg status koşmak, ama ben işlerlerse: Ben git bir grup ile sadece bir hg ana repo kullanıyormuş

committing subrepository SUBREPO 

Bu yüzden sorunlu olmaz altmodüller. İlk hg deposunda bir değişiklik yaptığımda sorun şu şekildedir: şimdi, taahhüt ettiğimde, hg deposunda ve hg alt-aşamasında, her zaman her zaman git alt modüllerini taahhüt ettiğinden. Şimdi, sadece ilk hg deposunda ve hg alt havuzunda aynı yorumda bulunacak şekilde tasarlanmış bir yorumum var.

Git altmodüller ile hg deposu/alt depomda yaptığım her işlem için bu müdahale committing subrepository SUBREPO'u nasıl önleyebilirim? Bu bir hata mı? Bu bir git tasarım (belki git depoları daima daima çekme eyleminden sonra değiştirmek gibi en azından bir "durum" dosyasını falan değiştirmek? Ben git ile çok deneyimi yok ...)

+6

1? – Andy

+0

yaşamak isteyen asla Dehşet saçma senaryo için – jmg

+0

@jmg: Denemedim, çünkü bu alt modülleri sadece 'dışlamak' değil, nedenini anlamak istiyorum. :) –

cevap

2

Hatta bir çekme var hiçbir şey alır git dosyaları git ... daha spesifik olarak .git/FETCH_HEAD dosya. HG/Mercurial'in burada nasıl olduğunu hatırlamıyorum ama aynı şeyden de şüpheleniyorum. Her durumda, boş bir çekişse, dosyanın kendisi değiştirilmez, yalnızca zaman damgası.

Yalnızca birinde çekin, sonra git/hg depo tam bir kopyasını yaparak bu doğrulayabilirsiniz. Bir dizin karşılaştırma aracı, değişen dosyaları gösterecektir.

Doğru bir şekilde hg'yi hatırlarsam, hg status komutu özellikle alt depolardaki dosyaları içermeyecek, dolayısıyla gördüğünüz davranış anlamlı olacaktır.

+0

"Hiçbir şey almayan bir çekme bile git dosyalarına dokunacaktır ... daha spesifik olarak .git/FETCH_HEAD dosyası" bu, tam olarak bakmaya çalıştığım şeydi. Belki git altmodüllerine sahip olmanın hg uygulaması bu dosyayı değiştiren bir şey yapar. Bir çözüm düşünebilmem için bunu ayıklayacağım! Teşekkürler! –

0

eğer bu yardım bilmiyorum, ama Subrepository yılında, bölüm 3.1 de subrepo ortaya koydu gerektiğini açıklayın.

Ama bu kuruluşta söz hakkınız olmadığını biliyor muyum? Hiyerarşinizi yeniden düzenleyebilir misiniz?

Sana `hg ci -X "hg-suprepo-dir"` denedin mi
İlgili konular