Bir yaptığım zaman bu hatayı alıyorum svn update
:
Çalışma kopyası XXXXXXXX kilitli Lütfen "Temizleme" komutunu uygulayın
Temizleme çalıştırdığımda,
Temizleme aşağıdaki yolları işleyemedi: XXXXXXXX
Bu döngüden nasıl çıkarım?
Bir yaptığım zaman bu hatayı alıyorum svn update
:
Çalışma kopyası XXXXXXXX kilitli Lütfen "Temizleme" komutunu uygulayın
Temizleme çalıştırdığımda,
Temizleme aşağıdaki yolları işleyemedi: XXXXXXXX
Bu döngüden nasıl çıkarım?
Yanıtlar:
Bir yaklaşım:
Başka bir seçenek, üst düzey klasörü silmek ve tekrar kontrol etmek olacaktır. Umarım buna rağmen gelmez.
Benim için, hile, svn cleanup
sorun oluşmadan önce çalıştığım klasörde değil, çalışma kopyamın üstünde çalışacaktı .
.svn
Klasörünüze bakın , içinde bir dosya olacak lock
. Bu dosyayı silerseniz güncelleme yapabilirsiniz. .svn
Her alt dizinin dizininde daha fazla kilit dosyası olabilir . Ayrıca silmeleri gerekir. Bu, komut satırından oldukça basit bir şekilde örn.
find . -name 'lock' -exec rm -v {} \;
.svn
Klasördeki dosyaları el ile düzenlediğinizi unutmayın . Onlar bir sebepten dolayı oraya konuldu. Bu sebep bir hata olabilir, ancak değilse yerel kopyanıza zarar verebilirsiniz.
find . | grep ".svn/lock" | xargs rm
Benim durumumda WC_LOCK tablosundaki SQLite ".svn \ wc" dosya kilidi kaydındaki bir kaydı el ile silerek çözdüm.
"WC" dosyasını SQLite editörü ile açtım ve
delete from WC_LOCK
Eakkas'ın yorumunu takiben , WORK_QUEUE
tablodaki tüm girişleri de silmeniz gerekebilir .
Şimdiye kadarki en kolay yol:
Clean up working copy status
, Break locks
,Fix time stamps
, Vacuum pristine copies
, Refresh shell overlays
,Include externals
İşini başarıyla yaptın.
Referans için ekran görüntülerini kontrol edin.
İlk adım:
İkinci adım: Kilidi kır seçeneğini etkinleştirin (açılır pencerede ikinci onay kutusu)
Umarım bu size çok yardımcı olur.
İş yerinde bir meslektaşım sürekli bu mesajı görür ve o SVN sürüm kontrolü altında bir dizin silindi çünkü onun için bu kadar olmadan aynı adla, SVN'den silme ve sonra değil sürüm kontrolü altında onun yerine yeni bir dizin oluşturulur.
Sorununuz buysa ...:
Dizinin nasıl değiştirildiğine / neden değiştirildiğine bağlı olarak bunu düzeltmenin farklı yolları vardır.
Her iki durumda da, muhtemelen şunları yapmanız gerekir:
A) Varolan dizini geçici bir adla yeniden adlandırın
B) Dosya sisteminden silinen ancak SVN'den silinmeyen dizini kurtarmak için bir SVN geri alma işlemi yapın
Oradan, ya sen
A) İlgili dosyaları silinen dizine kopyalayın
B) Dizinde içeriğinin önemli bir değişiklik olsaydı, bir SVN, orijinal üzerinde silmek işlemek ve bir SVN ardından istenen isme yeni dizin geri almak için eklemek adlandırmak yapmak o sürüm kontrolü altında birini.
Benim için yukarıdaki çözümlerin hiçbiri işe yaramadı. Kilitleri kırarak bir çözüm buldum. Svn temizleme işlemi gerçekleştirdiğimde, "Çalışan kopya durumunu temizle" ile birlikte "Kilitleri Kır" ı seçtim.
Bu benim için çalıştı.
Temizledikten sonra en son sürüme güncellemenizi sağlar.
Clean up working copy status
ve Breaks locks
veInclude externals
Benim için, aslında Kaplumbağa'nın hatasıydı, bir nevi. Kaplumbağa sadece "temizleyemiyorum, temiz çalıştırın" şikayet etti, ama komut satırını (svn cleanup) çalıştırdığımda, açıkça kullanılan çözüm olan açık olan bazı dosyaları silemediğini söyledi. Visual Studio'yu (dosyaları açık tutuyordu) kapattıktan sonra temizleme iyi çalıştı.
Diğer programlar da dosyaları depoda açık tutabilir ve bu soruna neden olabilir. Bir xls açık tutan Excel başka bir durumda suçluydu, bu nedenle repoda herhangi bir şey kullanan tüm programları kapatmak, hatta programları kapanmaya zorlamak ve yeniden temizlemeyi denemek için yeniden başlatmak akıllıca olabilir.
Harici klasörler varolan bir klasöre bağlanmak istemiyor çünkü bu sorunu yaşadım. Hedefin varolan (sürümlenmiş veya sürümlendirilmemiş) bir klasör olduğu bir svn: externals özellik satırı eklerseniz SVN Woring Copy kilitli hatası alırsınız. Burada bir temizlik de her şeyin yolunda olduğunu ancak güncellemenin işe yaramayacağını söyleyecektir.
Çözüm: Sorunlu klasörü depodan silin ve svn: externals özelliğinin ayarlandığı kök klasörde bir güncelleme yapın. Bu klasörü oluşturur ve her şey yoluna girer.
Bu sorun benim için ortaya çıktı çünkü svn: externals for files, hedef klasörün sürüm denetimli olmasını gerektirir. Bunun farklı depolarda çalışmadığını fark ettikten sonra, harici dosyalardan harici klasöre değiştim ve bu karmaşaya girdim.
Bunu yapmanın en kolay yolu gizli klasörleri göstermek ve .SVN klasörünü açmaktır. "Kilit" adında bir sıfır KB dosyası görmeniz gerekir, bunun silinmesi sorunu çözer
SVN 1.7 kullanarak aynı sorunla karşılaştım ve yukarıda belirtilen düzeltmelerin hiçbiri işe yaramadı.
En önemlisi, düzenlenen tüm içeriğinizi yedeklediğinizden emin olun.
Birkaç saat geçirdikten sonra (şubem 6 gb'ın üzerinde olduğu için her şeyi yeniden indirmedim), şubenizin .svn klasöründe "wc" adlı bir db dosyası olduğunu gördüm.
Herhangi bir db yöneticisi (i firefox's sqlite manager eklentisi kullandım) kullanarak db dosyasını açın ve WC_LOCK tablosuna gidin. Bu tabloda, elde edilen kilitler için girişler bulunacaktır. Kayıtları tablodan silin ve işiniz bitti :)
Bu sorun olduğunda, doğrudan sorun yol üzerinde temizleme komutunu çalıştığını bulmak genellikle işe yarıyor gibi görünüyor. Sonra tekrar çalışma kökünden temizleme çalıştıracağım ve başka bir dizin hakkında şikayet edecek. ve ben sadece şikayet durdurmak kadar tekrarlayın.
Bir Windows makinesindeyseniz, depoyu bir tarayıcı aracılığıyla görüntüleyin ve aynı dosya adına sahip ancak farklı durumlar kullanan iki dosya görebilirsiniz. Subversion büyük / küçük harfe duyarlıdır ve Windows aynı dosyayı indirdiğini ve Subversion'ın indirmediğini düşündüğünde bir kilit alabilirsiniz. Depodaki yinelenen dosya adlarını silin ve tekrar deneyin.
Sadece yeni bir klasör oluşturarak, projeyi kontrol ederek, güncellenmiş dosyaları yeni klasöre kopyalayarak yaptım.
Taze bir ödeme ile düzeltildi.
TortoiseSVN kullanıyor ve yeni mi yükseltiyorsunuz? Daha önce 1.4'ten 1.5'e geçerken ve yeniden başlatmadan önce bu problemi yaşadım. (Yeniden başlatmayı deneyin).
Yeniden başlatmanızın nedeni, önbellek dosyasının tamamen korkak olması.
Aksi takdirde, devam etmek için, o çalışma kopyasını yeni bir klasöre dışa aktarın (.svn gizli klasörlerini kopyalamayın), projeyi yeniden kontrol edin ve tüm kodunuzu geri taşıyın, ardından işleminize devam edin.
.svn klasörlerini silin, ardından üst dizinde bir temizleme çalıştırın. Mükemmel çalışıyor!!
Sık sık böyle bir sorunla karşılaşıyorum. Temizleme sorunlarına neden olan kalıbım.
Silinen dosyanın açıldığı resim görüntüleyiciyi kapatmak sorunu çözer. Belki başka yazılımlar temizlemeyi aynı şekilde engelleyebilir.
Genel olarak. Bilgisayarı yeniden başlatmanın bu gibi durumlarda yardımcı olabileceğine inanıyorum.
SVN, gerçek dosyalar depodan alınmadan önce normalde bir klasördeki dosyaların iç yapısını (.svn / prop-base) güncelleştirir. Dosyalar getirildikten sonra temizlenir. Güncelleme ilerlemesi sırasında "güncelleme" başarısız olduğu veya erken iptal edildiği için sıklıkla hata atılır.
Şimdi güncelleme çalışmalı.
Aynı sorun vardı çünkü sürüm kontrollü bir klasör altında bir klasör ihraç. Klasörü TortoiseSVN'den silmek zorunda kaldım, daha sonra klasörü dosya sisteminden silmek zorunda kaldım (TortoiseSVN, sürüm değiştirilmemiş alt klasörleri sevmez ... neden olmasın ???)
Çözümünüzü silmeyin!
.svn klasöründe 0 bayt uzunluğunda kilit adlı bir dosya var
Tüm bu dosyaları çözümünüzdeki tüm .svn klasörlerinden silebilirsiniz ve çalışır
Benim durumumda çalıştı
Dosyaların yerinde ters çevrilmesi ve aynı konuma yeni bir ödeme, bu sorunu benim için çözdü.
TortoiseSVN'de yerinde ters çevirmek için, çalışma kopyasının kök klasörünü dosya listesinden dizin ağacında kendisine sürükleyin ve açılır menüden "SVN Sürümlü öğeleri buraya aktar" ı seçin. TortoiseSVN, hedefin kaynakla aynı olduğunu fark eder ve çalışan kopyanın ters çevrilmesini önerir.
Sürüklemeden sonra, aynı klasöre yeni bir ödeme yapın (artık sahip olduğunuz tüm dosyaların sürümden kaldırılmış bir kopyasını içerir). TortoiseSVN mevcut bir klasöre baktığınız konusunda sizi uyarır, ancak devam edebilirsiniz.
Bundan sonra, temizlik, güncelleme ve diğer işlemler sorunsuz bir şekilde çalıştı. Yukarıdaki adımların her ikisi de yerel değişiklikleri koruduğundan, herhangi bir bilgi kaybı olmamalıdır (ancak çalışma kopyasını bundan önce yedeklemek yine de iyi bir fikir olabilir).
Bir uyarı: Çalışan kopya karışık sürümler veya taahhüt edilmemiş özellik değişiklikleri içeriyorsa, bu bilgiler kaybolur. Benim için bu yaygın bir durum değil ve bozuk bir çalışma kopyası veya taahhüt edilmemiş özellik değişikliklerini kaybetme seçeneği göz önüne alındığında, ikincisini tercih etme eğilimindeyim.
Ben "temiz" çalıştı, ancak "güncelleme" başarısız devam bu sorun vardı. İşe yarayan çözüm, TortoiseSVN'nin silme işlemini değil, söz konusu klasörü Windows Gezgini ile silmekti (silme işlemini depoya işlenecek bir şey olarak işaretler ve daha sonra klasörü depodan "güncellemek" için bir "ödeme" yaptım.
O / S silme ile SVN silme arasındaki fark hakkında daha fazla bilgi burada: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-rename.html
Özellikle:
TortoiseSVN → Bir dosyayı sildiğinizde, derhal çalışma kopyanızdan kaldırılır ve bir sonraki işlemde depoda silinmek üzere işaretlenir.
Ve:
TortoiseSVN içerik menüsünü kullanmak yerine bir dosya gezgin aracılığıyla silinirse, kaydetme iletişim kutusu bu dosyaları gösterir ve kaydetmeden önce de sürüm denetiminden kaldırmanıza izin verir. Ancak, çalışma kopyanızı güncelleştirirseniz, Subversion eksik dosyayı bulur ve depodaki en son sürümle değiştirir.
Sorunumu çözmek için aşağıdakileri yaptım:
Çözüm gezgininde, projeye sağ tıklayın, açılış alt menüsünde alt sürüme tıklayın ve temizlemeyi seçin. Sorunu benim için olduğu gibi çözecek. Umarım işe yarar.