Bir yapmaya çalışıyordum svn cleanup
çünkü çalışma kopyamdaki değişiklikleri uygulayamıyorum ve aşağıdaki hatayı aldım:
sqllite: veritabanı disk görüntüsü bozuk
Şimdi ne yapabilirim
Bir yapmaya çalışıyordum svn cleanup
çünkü çalışma kopyamdaki değişiklikleri uygulayamıyorum ve aşağıdaki hatayı aldım:
sqllite: veritabanı disk görüntüsü bozuk
Şimdi ne yapabilirim
Yanıtlar:
İlk olarak, depo kök dizininde command
/ terminal
dizininde açın (alt klasör olan .svn
klasör):
cd /path/to/repository
sqlite3
Yürütülebilir dosyayı indirin ve sqlite3
klasörün köküne koyun .
Depoyu ( /path/to/repository/.svn/wc.db
) takip eden sqlite veritabanında bir bütünlük kontrolü yaparsınız :
sqlite3 .svn/wc.db "pragma integrity_check"
Bu, bazı hataları bildirmelidir.
Ardından şunları yaparak bunları temizleyebilirsiniz:
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Bundan sonra hala hatalar varsa, deponun yeni bir kopyasını geçici bir klasöre teslim alma ve .svn klasörünü yeni kopyadan eskisine kopyalama seçeneğiniz vardır. Daha sonra eski kopya tekrar çalışmalıdır ve geçici klasörü silebilirsiniz.
Error: unable to identify the object to be reindexed
sqlite3 .svn/wc.db "pragma integrity_check"
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Bir yedekleme dosyasına okunabilen veritabanı içeriğini dökebilir, ardından onu yeni bir veritabanı dosyasına geri ekleyebilirsiniz:
sqlite3 .svn/wc.db
sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit
mv .svn/wc.db .svn/wc-corrupt.db
sqlite3 .svn/wc.db
sqlite> .read dump_all.sql
sqlite> .exit
ROLLBACK;
için COMMIT;
Doung önce .read dump_all.sql
.
svn: E235000: In file 'D:\Development\SVN\Releases\TortoiseSVN-1.9.7\ext\subversion\subversion\libsvn_wc\wc_db_wcroot.c' line 311: assertion failed (format >= 1)
, ancak burada bir çözüm var: hanscarpenter.blogspot.com.au/2016/05/…
sqlite3 .svn/wc.db 'PRAGMA user_version;'
Doğru sayıyı elde etmek için orijinal veritabanına karşı çalıştırın . 2. sqlite3 .svn/wc.db 'PRAGMA user_version = XXX;'
doğru numaraya sahip geri yüklenen sürümle çalıştırın .
Bir güç kesintisinden sonra, veritabanı disk görüntüsüne rastladım hatalı biçimlendirilmiş bir hata ve önerilen yeniden dizin düğümleri komutu ihlal edilen kısıtlamalar nedeniyle tüm sorunları çözmedi. Ayrıca http://mail-archives.apache.org/mod_mbox/subversion-users/201111.mbox/%3C874nybhpxi.fsf@stat.home.lan%3E'de açıklanan prosedür de sorunu çözmedi.
Benim durumumdaki çözüm:
Orijinal svn satın alma işleminiz birçok değiştirilmiş veya dönüştürülmemiş dosya içeriyorsa ve yeni bir svn denetimine geçmek istemiyorsanız, bu yararlı olabilir.
Meslektaşımın dizininden .svn klasörünü kopyaladım ve bu sorunu çözdü.
Belki bir çözüm olabilir:
Şimdi tekrar bağlanın:
repositorie
: benimkini seç SVN
(diğer durum: git, vb.)repositorie
klasörünüzü seçinNot:
Benim durumumda dosyalarımın yedeğini aldım. (güvenli geri dön: P)
Düzenle:
Ancak bahsettiğimiz SVN
üzerinde eklentisi Eclipse
:)
Bu gönderiyi yıkım sitesinde gördünüz mü ? Ayrıca, potansiyel olarak veritabanını doğrudan burada açıklandığı gibi doğrulamayı ve "düzeltmeyi" deneyebilirsiniz . (Uzman olmadığımı unutmayın, Google'da hızlı bir arama yaptım. Sorunlarınızla hiç ilgili olmayabilir).
Şahsen, depoyu tekrar kontrol etmeyi ve değişikliklerinizi yeniden uygulamayı deneyeceğim. Sizin durumunuzda bunun mümkün olup olmadığından emin değil misiniz?
Araştırmalarım boyunca 2 uygulanabilir çözüm buldum.
Herhangi bir tür bağlantı kullanıyorsanız, ssh, samba, takma, bağlantıyı kesme / ayırma ve yeniden bağlama / yeniden bağlama. Tekrar deneyin, bu genellikle benim için sorunu çözdü. Bundan sonra svn temizliği yapabilir veya normal şekilde çalışmaya devam edebilirsiniz (sorunun ne zaman ortaya çıktığına bağlı olarak). Bilgisayarımı yeniden başlatmak da sorunu bir kez çözdü ... evet aptalca biliyorum!
Bazen tek yapmanız gereken dosyalarınızı rm -rf (veya terime aşina değilseniz, svn klasörünüzü silin) ve svn deponuzu bir kez daha kontrol etmektir. Lütfen bunun her zaman sorunu çözmediğini ve kaybetmek istemediğiniz değişikliklerin olabileceğini unutmayın. Bu yüzden ikinci seçenek olarak kullanıyorum.
Umarım bu size yardımcı olur!
Görsel svn sunucusu rep-cache.db bozulması sorunumu çözdüm.
İki çözüm var.
Visual SVN Server hizmetini durdurun.
Sqllite3.exe kabuğunu sqllite web sitesinden indirin ve bunu repo'nun db klasörüne kopyalayın.
Deponun db klasöründeki komut istemine aşağıdaki komutları yazın.
- İlk Çözüm -
sqlite3 rep-cache.db
.clone rep-cache-new.db
sqllite'dan çıkmak için ctrl + c tuşlarına basın.
ren rep-cache.db rep-cache-old.db
ren re-cache-new.db rep-cache.db
- 2. Çözüm -
Rep-cache.db dosyasını silin
del rep-cache.db
otomatik olarak oluşturulacaktır.
Bunu, gizli .svn klasörünü silerek ve ardından klasörde aynı URL'ye bir ödeme yaparak başıma gelen bir örnek için düzelttim.
Bu, değiştirilmiş dosyalarımın hiçbirinin üzerine yazmadı ve sunucudan yeni kopyalar almak yerine mevcut tüm dosyaların sürümlerini değiştirdi.
Tablodaki checking integrity
verileri silerek ya da üzerinde zaman kaybetmeyin work queue
çünkü bunlar geçici çözümlerdir ve bir süre sonra size geri dönecektir.
Başka bir tane yapın checkout
ve mevcut .svn klasörünü yenisiyle değiştirin. Bir yapın update
ve sonra düzgün gitmeli.
Tortoise SVN'yi kurarsanız, lütfen görev yöneticisine gidin ve durdurun. Ardından klasörü silmeyi deneyin. Çalışacak
Yıkım temizlemesine göre işaretli cevap doğru cevap olabilir. Ancak hata kesinlikle genel bir hata, bu da beni buraya, bu soru sayfasına yönlendirdi.
Projemiz System.Data.SQLite bağımlılığına sahip ve hata mesajı aynıydı:
veritabanı disk görüntüsü bozuk
Benim durumumda, aşağıdaki kontrol betiğini ve aşağıdakileri SQLiteStudio 3.1.1 ile çalıştırdım .
pragma integrity_check
(Bu istatistiklerin yardımcı olup olmayacağı konusunda hiçbir fikrim yok ama yine de paylaşacağım ...)
DataBase dosyası, Bellek üzerindeki bağlantı günlük modu aracılığıyla 1,5 yıldır günlük kullanımda kullanılıyor ve yaklaşık 750 MB büyüklüğündeydi. Tablo başına yaklaşık 140 bin kayıt vardı ve 6 tablo bu büyüklükteydi.
Yürütülmesi sonra Bütünlük Denetimi komut, 11 satır yürütme zamanı 30 dakika sonra iade edildi.
wrong # of entries in index sqlite_autoindex_MyTableName_1
wrong # of entries in index MyOtherTableAndOrIndexName_1
wrong # of entries in index sqlite_autoindex_MyOtherTableAndOrIndexName_2
etc...
Tüm sonuçlar dizinlerle ilgiliydi. Her bir dizinin yeniden oluşturulmasının ardından sorunum çözüldü.
reindex sqlite_autoindex_MyTableName_1;
reindex MyOtherTableAndOrIndexName_1;
reindex sqlite_autoindex_MyOtherTableAndOrIndexName_2;
Yeniden indekslemeden sonra bütünlük kontrolü "tamam" sonucunu verdi.
Geçen yıl bu hatayı aldım ve DB'yi yedeklemeden geri yükledim ve ardından tüm değişiklikleri yeniden yaptım, bu gerçek bir kabustu ...
bir dizin kilidi için endişelenmenize gerek yok çocuklar.
Sadece yapmanız gereken, sqllite3 kurulu değilse aşağıdaki komutu yazınız,
>sudo apt-get install sqlite3
Bu komutu yazarak SVN veritabanını açın,
>sqlite3 .svn/wc.db
Şimdi yapmanız gereken, SVN DB'den kilit girişlerini kaldırmaktır.
sqlite> select * from wc_lock;
1|-1
sqlite> delete from wc_lock;
sqlite> select * from wc_lock;
sqlite> .q
İşlem tamamlandı. SVN deponuz üzerinde çalışabilir, işlemlerinizi gerçekleştirebilir, güncelleyebilir, ekleyebilir, kaldırabilirsiniz.
:-)
Uygulama geliştirme sırasında mesajların sık ve büyük INSERT ve UPDATE işlemlerinden geldiğini fark ettim. Tek bir işlemle birden çok satırı veya veriyi EKLEYİN ve GÜNCELLEŞTİRDİĞİNİZDEN emin olun.
var updateStatementString : String! = ""
for item in cardids {
let newstring = "UPDATE "+TABLE_NAME+" SET pendingImages = '\(pendingImage)\' WHERE cardId = '\(item)\';"
updateStatementString.append(newstring)
}
print(updateStatementString)
let results = dbManager.sharedInstance.update(updateStatementString: updateStatementString)
return Int64(results)