Subversiyon “önceki işlem tamamlanmadı” nedeniyle mi takıldı?


229

Yıkım raporumu güncellemeye çalışırsam, temizleme işlemini çalıştırmam gerektiğini söylüyor. Temizleme çalıştırırsam, bir dosyanın eksik olduğunu söyler. (Bu sabah ev bilgisayarımdan başarısız olan büyük bir dosya dizinini sildim, ancak daha sonra aynı dosya kümesini işten aldım ve şimdi ev repo büstüm). Yani, temizlik diyor ki:

Temizleme blablabla işlenemedi blablabla okuma-yazma dosyası ayarlanamıyor: Sistem belirtilen dosyayı bulamıyor.

Güncellersem şöyle diyor:

Komut: Güncelleme Hatası: Önceki işlem tamamlanmadı; kesintiye uğradıysa 'cleanup' komutunu çalıştırın Hata: Lütfen 'Cleanup' komutunu yürütün. Tamamlandı!:

Bunu nasıl çözerim?


(tüm SVN bilgilerini silmek ve yeniden kontrol etmek dışında)
coderama

3
Bu sinir bozucu hata neden svn nefret ediyorum. Her seferinde, kök klasörden veya üst klasörden temizleme çalışmadığı için yeniden ödeme yapmam gerekiyor. Ama en büyük sorun o zamanlar bindirme simgeleri göstermez, bu yüzden kontrol etmeden önce hangi dosyanın yedek olarak değiştirildi bilmiyorum
phuclv

@ Sigurd-v tarafından gönderilen mesaj, bana ve diğer birçok kişiye yardımcı olan sorunun gerçek cevabıdır: stackoverflow.com/a/22717607/5613292
Mehdi Javan

Yanıtlar:


102

Ben benzer durumlarda bulundum. Temizleme çalışma alanınızın kökünden çalıştırmayı denediniz mi? Bazen bir alt dizinden (nerede sorun yatıyor) bir temizleme çalışmıyor ve çalışma alanının kökünden temizleme biliyorum.

Bu hala başarısız olursa, bir yerde bir çocuk dizinini sildiğiniz için. Alt düzeyden de 1 düzey daha yüksek silmeyi deneyin (kök olmadığını varsayarak) ve güncelleme ve temizlemeyi yeniden deneyin.

Temizleme girişimleri herhangi bir düzeyde başarılı olmazsa, cevap maalesef yeni bir çalışma kopyasını satın almaktır.


4
çocuk direkten temizlemek için! Benim için çalışıyor!
Franva

1
Eğer bunu okuyorsanız başınız derttedir :) Git'le hiç böyle bir karmaşaya girmedim. Svn izin verirseniz, herhangi bir dizinde temizlik / geri dönüş / temizlik vb. Sona erdi.
aliopi

2
@ Sigurd-v tarafından gönderilen mesaj, bana ve diğer birçok kişiye yardımcı olan sorunun gerçek cevabıdır: stackoverflow.com/a/22717607/5613292
Mehdi Javan

Windows FileExplorer (Turtoise ile) Temizleme çalıştırdım ve bana sorunun ne olduğunu anlattı daha ayrıntılı bir hata verdi, bir şekilde SVN bu dosyayı kaybetti, bir darm * .cache dosyası, bu yüzden başka bir .cache aldı ve eksik dosyayı değiştirmek için yeniden adlandırın, temizleme çalıştırmak, bu thime hiçbir hata, TÜM SABİT !!
Jhollman

331

Genellikle yeni bir ödeme veya kopyalamaya gerek yoktur.

Ben sadece bu yardımı ile "önceki işlem tamamlanmadı" hatası ile ilgili benzer bir sorunu çözdü ( Link )

Görünüşe göre svn komutları / işlemleri işlerken bazen takılıyor. Bu işlemlerin tümü .svn klasöründeki wc.db veritabanı dosyasında saklanır.

SQLite'ı çıkış dizinime indirip çalıştırarak

sqlite3.exe .svn/wc.db "select * from work_queue"

bekleyen tüm işlemlerin bir listesini alabilirsiniz. Bu işlemler, hatanın "tamamlanmadı" olarak adlandırdığı işlemlerdir.

Koşarak

sqlite3.exe .svn/wc.db "delete from work_queue"

tüm eski işlemler çalışma kuyruğundan silinir ve hata kaybolur. Yeni bir kasaya veya başka bir şeye gerek yok


5
Yukarıdaki çözümü denemeden önce daima temizlemeyi çalıştırmayı denemelisiniz. Bu, yeni bir çalışan kopyaya bakmak zorunda kalmadan sıkışmış bir SVN deposunu açmak ve çalıştırmak istiyorsanız çalışır.
Sigurd V

7
Sqlite.exe indirmek ve silme çalıştırmak aslında kontrol ve birleştirme daha hızlı - harika cevap
Jeffrey Knight

12
Ben de bundan sonra bir "kilitli" aldım ama bir "svn temizleme" ile geçmiş aldık
Jeffrey Knight

1
Ben Debian üzerinde çalıştı, apt-get install sqlite3 kullanarak yükleyin, o zaman yukarıdaki komutları .exe olmadan çalıştırabilirsiniz
Richard Merchant

3
Ben de 'kilitli' mesajını aldım, ama sonra "kilitleri kırın" yazan kutuyu işaretleyerek 'Temizle' komutunu çalıştırdım ve işe yaradı
McCoy

114

Koşu konsolu svn cleanupbenim için aynı sorunu çözdü.


20
Konsol komutu svn cleanup, Tortoise Explorer eklentisini kullanmaktan daha ayrıntılı bilgi sağlar, bu da bu gibi durumlarda çok yararlı olur.
Brandon S

7
Konsol komutunu çalıştırmak, muhtemelen sorunu gerçekten çözmek için yeterli bilgi verecektir. Bu çok daha iyi bir cevap.
DDS

1
Peki ben en üst klasörü seçti ve kullanılan svn cleanup, teşekkürler
deadfish

Genellikle üst dizinleri dolaşıp onları temizlemeye başladım, ancak biraz zaman alıcı ve 'büyü'. Bunun ayrıntılı bir hata döndüreceğini bilmiyordum, +1.
Phil Cooper

Çalıştırırken svn cleanupkonsolun yüksek olduğundan emin olun. Başlangıçta bunu yapmadım ve red-write: Access is deniedhatayı aldım .
Tony

26

Ben de benzer bir sorun yaşadım. İşlem Gezgini'ni çalıştırmak, başka bir programın (Notepad ++) SVN'nin silmeye çalıştığı bir klasöre dosya tanıtıcısı olduğunu gösterdi. Notepad ++ 'ı kapattığımda, "Clean Up" başarıyla çalışabildi.


Bu, soruda bahsedilen sorunu üretebilir. Ama korkarım, eğer zaten olduysa tasfiye edemez.
Gangnus

19

Zaten SVN'de olan bir kavanoz ekledikten sonra bu sorunla karşı karşıya kaldım ve aynı adı taşıyan yeni sürümünü ekledim.

Eclipse'de bunu denedim

  1. Klasör> Ekip> Yenile / Temizle'ye sağ tıklayın.
  2. Uygulamamı temizleyin, oluşturun ve yenileyin.
  3. Eclipse'i yeniden başlatın.

Yukarıdaki adımları kullanarak Senkronize edebilirim.


1
Benim için çalıştı. Sadece üçüncü adım zorunlu değildir (Eclipse'i yeniden başlatın).
jpmottin

Bu da benim için çalıştı, çok şey denedim ama işe yaramadı. Görsel stüdyomu kapattım ve temizlik yaptım. thanks much
AhammadaliPK

18

Burada en çok oy alan cevapları denedim ve birkaç tane daha boşuna. Masam WORK_QUEUEboştu ve daha yüksek bir klasörde temizlemeyi deneyemedim. Yaptığı şey şuydu (Tortoise SVN aracılığıyla);

  • Klasöre sağ tıklayın
  • TortoiseSVN -> Temizle ...
  • Seçeneğinin Break Locksişaretli olduğundan emin olun ve Tamam'ı tıklayın.

Temizleme işlemi şimdi başarıyla tamamlandı ve devam edebilirim. Sqlite3 veya diğer kıvrımlı çözümlerin indirilmesine gerek yoktur.


2
Kilitleri kırmak düşündüğüm şeyi yapmaz. Yalnızca sisteminizde kullandığı yerel kilitleri kırar. Başkasının ayarladığı kilitler değil.
Brian Carlton

1
sqlite3 bazen sorunumu çözdü, ama bu yöntem hatırlamak çok zordu ve temizlemek çok sık başarısız oldu. Bu yöntem beni kurtardı ..
sc

9

Dosyalarınız açıkken temizleme çalıştırmaya çalışmak bana sorun verdi. Başvurumu kapatır kapatmaz (Visual studio) temiz kaldım ve başarılı oldu


1
Doğru. Dosyalarınızın kullanılmadığından veya Windows'ta Yönetici gibi farklı bir kullanıcı olarak teslim alındığından emin olun.
froggythefrog

6

Kaplumbağa SVN kullanıyorum. Temizleme başarısız olduğunda, temizleme seçeneğini işaretleyin

Kilit Kırma seçeneğinin işaretli olduğundan emin olun .

Temizleme adımı

  • keşif klasöründe sol fare düğmesi
  • 'Tortoise SVN' -> 'Temizle ...' menüsünü seçin
  • ' Kilitleri Kır ' seçeneğini işaretleyin ve 'Tamam'a basın

Zaten cevap verdi, ancak bazen resim yardımcı oluyor

resim açıklamasını buraya girin


4

Aynı problemi aldım, benim durumumda demek istediğim uygulama ile svn kaplumbağa kullanıyordum. Kök modda pencerelerin cmd kabuğunu kullanarak svn temizleme uyguladıktan sonra svn güncelleme .... Sonra uygulama moduna geri dönebilir ve mükemmel çalışır!


2

.Svn klasörünü başka bir konuma kaldırmayı denedim ve aynı kök klasöre geri yerleştirdim. SVN'yi güncellemeye çalıştıktan sonra güncellendi. Tam olarak nasıl çalıştığını bilmiyorum.


2

Aynı sorunu yaşadım ve bir şekilde c: \ düzeyinde gizli bir .svn dosyası buldum. Bu gizli klasörü (.svn) sildikten sonra, her şey yolunda gitti. İstenmeden kök sürücüsünde çalışan bir dizin oluşturmuş olmalıyım.


2

Benim durumumda, sorunlara neden olan gulp-watch koşum vardı. Durdurduktan sonra Temizleme komutunu yürütebilirim.


Bu, istenmeyen bir JVM'yi öldürmeme ve ilerlememe yardımcı oldu.
Çanak

2

Merhaba çocuklar ben Visual Studio kapatın ve CleanUp yeniden denemek sonra benim durumlarda iyi vakit var


2

Ben de darbe denedim aynı sorun ile sıkışmış:

1. svn yani TSVNCache.exe ve TortoiseProc ile ilgili süreci öldürmeye çalışın. 2. 3. komut istemi "svn cleanup" kullanarak temizleyin

ve son olarak masaüstünü yeniden başlattığımda benim için çalıştı, Yani sistemin yeniden başlatılması için benim için çalıştı


1

svn'yi ana klasörden silin ve elsewere.'den sahip olduğunuz başka bir geçerli kopyadan değiştirin ve ardından güncelleyin. svn klasörü normalde gizli bir klasör olacaktır. Bu nedenle, yukarıdaki adımları uygulamadan önce klasörü gösterdiğinizden emin olun.


1

Benim için çalışan geçici çözüm:

  1. Dizininizin içeriğini kesin ve başka bir klasöre kopyalayın.
  2. Boş klasördeki komut satırından temizleme işlemini çalıştırın.
  3. Dosyaları orijinal klasöre geri kopyalayın.

Bitti, ama bunun neden olduğunu açıklayamıyorum. Dosyaları kaldırmazsanız, temizleme komutu bu dosyaları okuyamayacağını / yazamayacağını söyler.


1

Benim için de aynı sorunu yaşadım:

  1. Klasörlerinizi ve dosyalarınızı başka bir yere kopyalayın, bir klasöre söyleyin (Dosyalarımı yakın zamanda değiştirdim ve taahhüt başarısız oldu ve ele alınan soruna yol açtı)
  2. yeni bir çalışma kopyasına göz atın
  3. değiştirilen dosyalarınızı klasörden çalışma kopyanıza kopyalayın ve mevcut dosyaları geçersiz kılın. Taahhüt / Güncelleme şimdi çalışmalıdır

1

"'/Users/Code/UnitTest.cpp' dosyasının izinleri değiştirilemiyor: Böyle bir dosya veya dizin yok" gibi bir hata aldım. Alt sürüm, artık orada olmayan bir dosya hakkında karıştırılır. Dosyanın bir kopyasını oluşturmak için "echo ABCD >> /Users/Code/UnitTest.cpp" gibi bir şey yaptım, sonra temizleyin. İşe yaradı.


1

Benim durumumda, hata bir IDE içinden işlemeye çalışırken ortaya çıktı. Gezginde TortoiseSVN ile aynı dizinlerin taahhüdünü yürüttüğümde, işlem başarılı oldu.


1

Hariciları kullanırken bu benim için oldu ve bunlardan biri bozuktu. O klasöre gidip bir temizlik yapmak zorunda kaldım. Sonra temizleme tüm çalışma kopyası için çalıştı.

Örnek: Harici kullanarak ^/widgets/foo common/foo-widget, önce klasör üzerinde temizleme gerçekleştirin common/foo-widget.


1

Bu hatayı bugün SVN'ye taahhüt etmeye çalışırken çözdüm. Hata gerçekti, TortoiseSVN işlemeye çalıştığım bir dosyaya erişemedi. Bu dosya Windows'ta "Yönetici Olarak" programı çalıştırılırken kaydedilmişti. Bu, dosyanın Yönetici erişimine sahip olduğu ancak hesabımdan erişemeyeceği anlamına gelir (TortoiseSVN etkileşimli kullanıcı olarak çalışıyor). Atanan dosyanın sahipliğini Windows hesabıma aldım ve bundan sonra Cleanup devam edebildi.


0

Başlangıçta TortoiseSVN ile kontrol etmeye çalışırken bu sorunu var. Başlangıçta, hem TortoiseSVN temizleme hem de konsol svn temizleme her ikisi de orijinal posterle benzer iletilerle başarısız oldu.

Ama benim çözümüm, (yanlışlıkla öğrendim) sadece birkaç dakika beklemekti. Bence TSVNCache check-in sırasında bu dosyaların bazılarına tutunuyordu.


0

aşağıdaki adımları izleyin.

1) ile başarılı bir şekilde temizleyemediğiniz dizine gidin svn. (Kök klasör veya alt klasör).

2) .svnDizindeki klasörü seçin , o klasörü kesin ve ayrı bir sürücüye veya ayrı bir konuma yapıştırın (svn dizininin dışında)

3) Şimdi dizine geri dönün - sağ tıklayın ve seçin TortoiseSVN -->Repo-browser

4) Checkout klasör (yeni ödeme yapmaz).

5) Tüm öğeleriniz tekrar sürümlendirilecek ve svn'nin iç sorununu onaracak ve sorun çözülmelidir.


SADECE tam ödeme gerçekleştirin. herhangi bir yardım ?
candidJ

0

Benim durumumda, arka plan Java Sanal Makinesi örneği çalışıyordu ve hangi temizleme başarılı oldu.


0

Diğer geliştiriciden .svn klasörünü almış ve onunla .svn klasörünü değiştirmiştim. Benim için çalıştı. Başka sonuçların ne olabileceğini bilmiyorum!


0

Bu bağlantıyı kullanarak, https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html

Ben öğretici kontrol üst 6 seçenekleri olduğunu fark ettim. Çaresizlik içinde bu işaretli kutuları kullanarak denedim ve şaşırdım. Her birinin ne yaptığını dikkatle okuduğunuzdan emin olun. Her birinin açıklamasına baktığımda, onlar benim için dahil etmek güvenli görünüyordu, bu yüzden bu kontrol edilen öğelerden biri beni tutan her ne sorunu çözmüş gibiydi.


0

Bu, SVN anahtarını / temizliğini denediğinizde dosyalarınız hala açık olduğunda oluşabilir.

Başka bir uygulamada açtığım yeni bir dosya oluşturduğum bir şubem vardı. Başka bir şubeye geçiş yapmak, dosyanın başarısız olmasına neden olan dosyayı kaldıramadı. Bu aynı zamandasvn cleanup başarısız olmasına , ancak bu Tortoise SVN kullanıcı arayüzünde neden olarak görüntülenmiyor.

Koşu svn cleanup(kök klasörü) bir konsol penceresinden açıkça hata gösterirfile\location\file.ext: The process cannot access the file because it is being used by another process

Açık dosya tutamaçlarını / pencerelerini kapatmak ve konsolu çalıştırmak svn cleanup, temizlemenin düzgün çalışmasını sağlar.

Uzun öykü kısa - svn cleanupdaha ayrıntılı bir hata görmek için konsolda çalıştırın .


0

Sigurd V'nin cevabına ek olarak (önce denemelisiniz), bazı daha büyük kod tabanlarının birden fazla '.svn' klasörü vardır ve kök dizinde kilitli görevi olan klasör olmayabilir.

Bu durumda, her birini kontrol etmeniz gerekir. Zaten SQLite ve Powershell'iniz varsa, rahatsız edici dizini hızlı bir şekilde bulabilirsiniz.

Hangi klasörlerin kilitli olduğunu bulmak için (değiştirerek path\to\sqlite.exe):

Get-ChildItem -Path . -Filter '.svn' -Recurse -Hidden | foreach { $toFind = $_.FullName + "\wc.db" ; gci $toFind | foreach { echo $_.FullName ; path\to\sqlite.exe $_.FullName "select * from work_queue" } }.

Bu, .svn dizinlerinin bir listesini ve her birinin altında mevcut görevlerin bir listesini verir.

Tamamlanmamış görevler varsa, her biri için (değiştirme path\to\sqlite.exeve değiştirme path\to\.svn\wc.db):

path\to\sqlite.exe path\to\.svn\wc.db "delete from work_queue"


0

svnBir .svn/tmpdizin silerek / çözerek bu da dahil olmak üzere birçok sorun gördüm . O zaman koşsvn cleanup


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.