SVN - Güncelleme sırasında sağlama toplamı uyuşmazlığı


122

Subversion'dan bazı dosyaları güncellemeye çalıştığımda şu hatayı alıyorum:

org.tigris.subversion.javahl.ClientException: 
Checksum mismatch while updating 'D:\WWW\Project\\.svn\text-base\import.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'

Bunu neden alıyorum? Nasıl düzeltebilirim?

Yanıtlar:


70

Düzeltmenin en kolay yolu (çok fazla değişikliğiniz yoksa) değişikliklerinizi başka bir dizine kopyalamak, projenizin teslim alındığı dizini silmek ve projeyi tekrar kullanıma almaktır.

Sonra değişikliklerinizi geri kopyalayın (herhangi bir .svn klasörünü kopyalamayın) ve kesin ve devam edin.


9
Sorunlu dosyanın olduğu klasörü yeni sildim ve tüm projeyi güncelledim. Şimdi iyi görünüyor.
Koralek M.

+1 Bulduğum diğer alternatif, çok daha kolay svn veritabanını
kırmamı sağladı

@SeanDowney bunu nasıl yapmalı?
arvindwill

@arvindwill Üzgünüm, yorumumda çok net değildim, bu yöntem çok daha kolay. İşte korkutucu alternatif: maymay.net/blog/2008/06/17/…
SeanDowney

2
Bu hiç de belirli bir düzeltme değildir. Her zaman tüm yerel verilerinizi silebilir ve depodan yeni bir kopya ile başlayabilirsiniz.
tim

197

SVN 1.7+ kullanıyorsanız, burada açıklanan bir geçici çözüm vardır .

Özetlemek gerekirse:

  1. Soruna neden olan dosyanın bulunduğu klasöre gidin
  2. Yürüt komutu svn update --set-depth empty(not: bu, dosyalarınızı siler, bu yüzden önce bir kopyasını alın!)
  3. Komutu çalıştır svn update --set-depth infinity

17
Bu benim için işe
yarasa da

3
Bu, uzak bir konumda dev bir depoyu düzeltmek için harika çalıştı. Yeni bir ödeme yapmak işe yarayacak olsa da, bir saatten fazla sürebilirdi; bu dakikalar aldı.
Brian Gillespie

merhaba svn istemcisi olarak pencere ve kaplumbağa vn kullanıyorum .. Çözümünüzü denedim. ama yine de isse gösteriyor
Amit Bera

.Svn dizini yeni depodan eskisine değiştirildi, işe yaradı :)
harishkumar329

Bu benim için harika çalıştı, teşekkürler! 1 numaralı noktanın soruna neden olan gerçek klasörü (veya dosyayı) ayrıntılı olarak incelemek olduğunu belirtmekte fayda var. O zaman fazla güncellemenize gerek yok. İçinde birkaç düzine dosya bulunan bir klasörüm vardı ve bu klasörde Tortoise "Güncelle-> yalnızca bu öğeyi" ve ardından hepsini geri almak için "Güncelle-> tamamen özyinelemeli" kullandım. Yine de herkes bunun o klasördeki dosyaları sildiğine dikkat edin! Çok gigabaytlık depoya ve baştan sona ince ayarlı derinliklere sahip yavaş bir VPN bağlantısında, "standart" çözüm hiçbir işe yaramazdı.
dash-tom-bang

6

Benzeri bir problemim vardı. Ana sağlayıcı antivirüs "FortiClient" (antivirüs + VPN CLient) idi. Devre dışı bıraktığımda - tüm güncelleme / kontroller doğru şekilde yapıldı


1
Sorunumu çözen tek cevap bu. Bunu asla düşünemezdim. Teşekkürler!
2016

5

Bu sorunu çözmenin daha kolay bir yolunu buldum. Bunu doğrudan tutulmadan yapamazsınız. Adımlar:

  1. Windows'ta çalışma alanı klasör yapısına gidin
  2. klasörü yeniden adlandır
  3. tutulmada tazelenmek
  4. Şimdi klasör ve dosyalar tutulmada projeden kaldırılacak ve yeniden adlandırılmış yeni klasör altında görünecektir.
  5. Şimdi "Respository ile Senkronize Et" seçeneğini deneyin.

Bu, .svn klasöründeki metin temel klasörünü geri yükleyecektir. Güncelleme hatası sırasında sağlama toplamı uyuşmazlığı daha fazla görünmeyecektir.


1

Bu Eclipse eklentisini kullanarak ve senkronize ederek başıma geldi. Soruna neden olan dosyada yerel değişiklik olmadı (ve aslında son güncellememden bu yana uzaktan değişiklik olmadı). Dosyalarda başka hiçbir değişiklik yapmadan dosya için "geri dön" seçeneğini seçtim ve işler normale döndü.


1

Aynı hatayı aldım ama bir dosya için. IntelliJ IDEA'da dosyanın bir kopyasını oluşturabildim, ardından projeye girip söz konusu dosyayı sildim ve ardından başarıyla tamamladım. Daha sonra aynı isimde yeni bir dosya oluşturdum ve içeriğini geri kopyaladım. Sanırım revizyon geçmişini kaybedersiniz ama işe yarıyor.


1

Sizinle çalışan bir meslektaşınız varsa:

1) ondan sorunlara neden olan dosyayı yeniden adlandırmasını isteyin ve commit

2) siz update(şimdi farklı bir adla geçersiz sağlama toplamı içeren dosyayı görüyorsunuz)

3) orijinal adıyla yeniden adlandırın

4) commit(ve iş arkadaşınızdan updatedosya adını ilk durumunda geri almasını isteyin )

Bu benim için sorunu çözdü.



1

Tortoise SVN kullanıyorum, bu sayfadaki tüm çözümleri inceledikten ve çalışmadıktan sonra,

Sonunda sorun dosyasını yedekledim. ve Repo Browseriçindeki sorunlu dosyayı silin, ardından yerel klasörü güncelleyin, böylece yerel klasördeki dosya silinir. Ardından yedekleme dosyasını geri kopyalayın veAdd > Commit ardından başarıyla güncelleyebilirim.

Bu yöntemin tek dezavantajı, bu dosyanın geçmişinin kaldırılacak olmasıdır.


0

Bunu çözmek için aşağıdaki adımları izleyin:

  1. Hatayı aldığınız .svn dizininde bulunan girişler dosyasını açın.
  2. Hata veren dosyanın girişini bulun ve beklenen değeri hatalı gerçek değerle değiştirin.
  3. Şimdi senkronize edin ve güncellemeyi deneyin.

Hala çalışmıyorsa. Bunları dene. Yine de bu sadece bir çözüm:

  1. Dosyayı sisteminizden silin.
  2. Dosya girişini girişler dosyasından silin. (Dosya adından özel karakterlere kadar).
  3. Şimdi dosyayı senkronize edin ve güncelleyin.

Bu, depodan dosyanın en son sürümünü alacak ve tüm çakışmalar çözülecektir.


0

bir sunucuda benzer bir sorun vardı, ancak SVN dizini çok büyüktü, silmek ve yeniden senkronize etmek istemediğinden, dosyaların bir kopyasını yerel olarak oluşturdum ve sonra onları sildim. Güncelleme başarılı olduğunda ve dosyalar eklendiğinde.


0

dosyayı silmeyi ve dosya referansını .svn dizini altındaki dosya girişlerinden kaldırmayı deneyin


0

Benzer bir hatayla karşılaştım ve aşağıdaki gibi düzelttim:

(Benim 'düzeltmem', yıkımın dahili olarak nasıl çalıştığı hakkında pek bir şey bilmediğim için doğru olabilecek veya olmayabilecek bir varsayıma dayanmaktadır, ancak kesinlikle benim için işe yaradı)

.Svn \ text-base \ import.php.svn-base'in en son kaydetme ile eşleşmesinin beklendiğini varsayıyorum.

Hatayı yaşadığım dosyayı kontrol ettiğimde, temel dosya depodaki en son kayıtla eşleşmedi.

Metni en son işlemden kopyaladım ve yanlış dosyayı değiştirerek .svn klasörüne kaydettim (varsayımlarımın yanlış olması durumunda bir yedek kopya yaptım). (dosya salt okunur olarak işaretlendi, bu bayrağı temizledim, üzerine yazdım ve salt okunur olarak ayarladım)

Daha sonra başarılı bir şekilde bağlanabildim.


0

Benim çözümüm şuydu:

  1. Dosya sisteminden svn temizlemeyi yürütün
  2. Başka bir şubeye geç
  3. Çatışmaları çöz
  4. "Sorunlu" şubeye geçin
  5. Spring Tool Suite'ten temizliği yürütün
  6. Proje Güncellemesini Yürüt

0

1. 'reversiyona güncelle' dizini altındaki 'sadece bu öğeyi kontrol et' 2. tekrar güncelle 'Tamamen özyinelemeli' seçeneğini işaretleyin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.