2011-10-30 10 views
8

Artık olmayan bir subrepo/revizyon çiftine sahip eski bir şubeye güncellemeye çalışırken, paralı veri havuzumuz sıkışıyor.Güncellemede başarısız olan bir Mercurial repo nasıl çözülür, çünkü subrepo'da eksik revizyonun nedenleri nelerdir?

abort: unknown revision '22e9bb6a6cd98be85b995f632b2f72d6298f9354'! 

bir revizyon veya dalına güncellemek için Mercurial anlatmak ama subrepos güncellemek çalışmayın için herhangi bir yolu var mı?

+0

Bu soruyu sorduğunuz için teşekkür ederiz. FWIW, sanki bunu sorduktan iki yıl sonra yandı: http://mercurial.808500.n3.nabble.com/PATCH-subrepo-check-phase-of-state-in-each-subrepositories-before-committing-td4005250 .html – weberc2

cevap

6

Alt rapor hala başka bir yerde var mı? İşaretçiyi, .hgsub'daki konumların üzerinde bir çeviri katmanı sağlayan [subpaths] bölümünü kullanarak değiştirebilirsiniz.

gerçekten her yerde yoksa gibi bazı derin sihirli yapabildin böylece: boş bir .hgsub dosyası vardır hariç, sadece REVISION_YOU_WANT gibi yeni bir inceleme oluşturmak gerekir

hg debugsetparent REVISION_YOU_WANT 
cat /dev/null > .hgsub # put an empty .hgsub in place 
hg commit .hgsub 
hg update tip 
böylece daha sonra can güncellemek

Yeni bir yerde altpropoyu bulabilir ve alt yollar ile işaret ederseniz çok daha iyi olurdu.

+0

Bu hack, bir dahaki sefere ittiğimde veya yalnızca yerel olarak diğer reposlara yayılacak mı? – Pol

+0

Eğer taahhüt ederseniz, 'itme' üzerinde yayılacaktır. Harekete geçmeden önce o klonu istemiyorsan. Yerel klonlar anlık olarak (yakın) ve neredeyse hiç disk alanı (neredeyse) alırlar - bir şeyi denemek için * harika bir yoldurlar. –

+2

Geri güncelleştirmeye çalıştığınız taahhüt, adlandırılmış bir dalda (varsayılan dışında) varsa, hug hata ayıklaması yaptıktan sonra ayrıca hg dalını yapmak zorunda kalacağınızı unutmayın. –