2012-04-11 20 views
32

Diğer reposların heterojen ekosistemlerinden oluşturulmuş bir mercurial repo oluşturdum. İş arkadaşlarıma yayınlamadan önce, mümkün olduğunca temizlemek istiyorum. Bu amaçla, geçmişten birkaç büyük eski dosyayı tamamen kaldırmak istiyorum (hiç var olmadıkları gibi), bu yüzden repo daha küçük olacaktır.Mercurial'daki büyük dosyaları geçmişten nasıl silersiniz?

Bu mümkün mercurial ile mi?

+8

"Konu dışı" yakın oyunu anlamayın; Bu soru mükemmel bir konudur. –

+0

@Graham, yazılım mühendislerinin revizyon kontrolünü kullanması gerektiğini düşünüyor musunuz? Bu çılgın bir konuşma ... – sage

cevap

35

convert uzantısına, özellikle --filemap seçeneğine göz atın.

[extensions] 
convert = 

dosyaların bir harita oluşturun dışlamak için:

exclude path/to/file1 
exclude path/to/file2 

Sonra repo dönüştürmek:

hg convert srcrepo destrepo --filemap <map> 

Not bir orada şu mercurial.ini ekleyerek

etkinleştirme Mercurial 2.1.1'deki hata, yukarıdaki komutla bir hataya neden oluyor:

initializing destination destrepo repository 
abort: invalid mode ('r') or filename 

Sorunu düzeltmek için --splicemap <nonexistent file> seçeneğini eklemeniz yeterlidir.

+0

Cevabınız için teşekkürler! --filemap'in belgeleri oldukça azdır, biraz daha ayrıntılı olarak açıklayan bir bağlantınız olur mu? –

+0

@static_rtti, yanıt güncellendi. –

+0

Vay, harika! Çok teşekkür ederim. –

İlgili konular