2010-04-23 18 views
5

Ben (itilmiş değil) lokal olarak dosyaların bir sürü ve şimdi bunun çok zaman alır itmek çalıştığınızda (& çıkarmadan ekleyerek ... ikili dosyaları dahil) kararlıdır. Aslında yerel repo tarihçemi berbat ettim.Dosyaları geçmişten nasıl kalıcı olarak silerim?

Gelecekte bu hatayı nasıl önleyebilirim? Yerel klonun son revizyonu olan - 1-> 2 için bir dizi yerel revizyonu 0 ile değiştirebilir miyim?

düzenleme: acele ettiğimden beri revizyon 4 ile sıfırdan yeni bir uzak repo başlattım. Gelecekte daha kolay göründüğü gibi belirgin bir cevapla gideceğim ama gerçeği görmek için başka çözümler kazacağım. Desteğin için teşekkürler.

cevap

1

Mercurial geçmişi değişmez, normal araçları kullanarak silemezsiniz. Ancak, bu dosyaların olmadan yeni repo oluşturabilirsiniz: Eski repo sadece revizyonları sıfır ve birini alır ve yeni bir repo içine koyar

$ hg clone -r 1 repo-with-too-much new-repo 

. Şimdi dosyaları revizyondan dört yeni repo'ya kopyala ve imzala.

Bu geçişler arası değişikliklerden kurtulur, ancak vahşi bir yerde bulunan tüm repolar hala onlara sahiptir, bu yüzden pull onları geri alırsınız.

Genel olarak, bir değişiklik kümesini ittikten sonra, bir klonla herkesi silmeniz ve bir daha hiç bir şeyden kurtulmak için bir klonla karşılaşmadığınız sürece.

2

Bu değişikliklerin zorlanıp karşılanmadığı sorusundan net değil. Eğer hala yerellerse, kolayca onlardan kurtulabilirsin. dönüştürmek bir seçenektir. Ayrıca MQ (satıcı kuyrukları) da kullanabilirsiniz. Ayrıntılı bir açıklama için EditingHistory wiki makalesini kontrol edin. MQ'nun en basit yaklaşım olmasını önerir.

+0

benim uygulamanın db depolamak için cıva kullanın), bu yüzden sadece ben;

hatalar bu tür önlemek için, muhtemelen programlama yoluyla onları tarif edebilir göz önüne alındığında, taahhüt 'kötü' reddetmek için bir kanca eklemek gerekir .bg'nin her parçasını onayladı ve sadece bir kavanozu işledi. – amirouche

İlgili konular