SVN Hatası - Çalışan bir kopya değil


215

Son zamanlarda svn sunucumuz değiştirildi ve svn anahtarı yaptık.

Çalışma kopyası çok sayıda sürümden yoksun kaynağa sahip olduğundan, çalışma kopyası kilitlendi ve svn altındaki tüm klasörler için klasörleri değiştirmeye başladık, bu da gayet iyi çalışıyor.

Ancak deponun en üst düzeyinde, dosyaları güncellemeye çalıştığımda svn: Working copy ' dosyasını alıyorum .' kilitli hata ve temizleme de yardımcı olmuyor. Temizlik yaptığımda, böyle hatalar alıyorum - svn: 'content' çalışan bir kopya dizini değil

Taze ödeme hiç bir seçenek DEĞİLDİR. Kilitleri temizlemenin ve serbest bırakmanın ve anahtarı tamamen yapmanın başka yolları var mı?

EDIT: JesperE'nin cevabındaki son paragraf

Özyinelemeli bir "svn temizleme" yaparken "çalışan bir kopya" alırsanız, benim tahminim çalışan bir kopya olması gereken bir dizine sahip olmasıdır (yani üst düzeydeki .svn dizini böyle söylüyor), ancak eksik kendi .svn dizini. Bu durumda, yalnızca bu dizini kaldırmayı / taşımayı ve ardından yerel bir güncelleştirme yapmayı deneyebilirsiniz

depodaki sorunun çözümü gibi görünüyor. Bu klasörleri belirledim ve bu belirli klasörlerin yeni bir çıkışını yaptım ve wow, kilitler sonraki temizleme işleminde serbest bırakıldı! Çok teşekkürler JesperE !!

Ama yine de şimdi gibi bir şey okuyan svn anahtar hatasını anlayamıyorum,

svn: 'svn: // repourl / reponame / foldername' konumundaki havuz uuid 'm / reponame' u içeriyor, ancak WC 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

Herhangi bir fikir ?


bu hatayla karşılaşan R kullanıcıları için: github.com/wch/r-source/wiki#adding-svn-information
isomorphismes

Yanıtlar:


126

Eğer özyinelemeli bir "çalışma kopya değil" svn cleanupalırsanız benim tahminim çalışan bir kopya olması gereken bir dizin var (yani .svnüst düzey dizin böyle söylüyor), ama kendi .svndizini eksik olduğunu . Bu durumda, yalnızca bu dizini kaldırmayı / taşımayı ve ardından yerel bir güncellemeyi (ör.rm -rf content; svn checkout content ) .

Bir not a working copyhata alırsanız , Subversion .svnorada uygun bir dizin bulamaz . Var olup olmadığını kontrol edin.svn dizincontents

İdeal çözüm, mümkünse yeni bir ödeme yöntemidir.


1
Katılıyorum, çalışma kopyasını repo ile taşımayı denemek yerine yeni bir ödeme yapın.
Tigraine

2
Benim sorunum, yeni bir sunucuya geçtim ve henüz tamamlanmayan iş ile dosya sistemi yedeklerimi geri yükledim ve artık ihtiyacım olmayan eski projeleri filtrelemek için svnadmin kullandım. Bu yüzden depomda ihtiyacım olan tüm bilgiler var, ancak yeni bir UUID var. Bu durumda, sadece değiştirilen dosyaları tartacağım, yeni bir ödeme yapacağım ve sonra untar yapacağım.
Drarok

İlk paragraftaki önerim sistemimde çalışmıyor (W7 + Cygwin). Aksine rm & svn güncellemesi yaptı.
Jukka Dahlbom

17
UYARI: rm -rf klasörü contentkalıcı olarak siler . Yürütmeden önce bir yedek alın.
KrishPrabakar

47

Benzer bir duruma ( svn: 'papers' is not a working copy directory) farklı bir şekilde girdim, bu yüzden savaş hikayemi yayınlayacağımı düşündüm (basitleştirilmiş):

$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied

Hata! izinleri düzelt ... sonra:

$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~     papers
$ svn cleanup
svn: 'papers' is not a working copy directory

Ve papersyoldan çekilip koşmak bile svn up(ki OP için çalıştı) düzeltmedi. İşte yaptım:

$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers

İşe yaradı.


6

Tarafından çözdüm

  1. Etkilenen klasörlerin yedeğini kopyalama
  2. SVN etkilenen klasörleri geri alma
  3. Dosyaları yedekten geri yapıştırın

Benim durumumda sorun silinmiş .svn dosyalarından kaynaklanıyordu.


Nasıl yapılır ? Lütfen kısaca açıklayın
Anand Savjani

5

Belki sadece klasör ağacını kopyaladınız ve en altını eklemeye çalıştınız.

SVN
|_
  |
  subfolder1
       |
       subfolder2   (here you get an error)

bu durumda üst düzeyde dizin işlemek zorundasınız.


3

Geçici çözüm: 'Çalışma kopyası' olmayan dizini yeniden adlandır Bu dizini yeniden kullanıma alma / güncelleştirme / geri yükleme

Sebep: .svn dizini altındaki bazı dosyalarda bazı değişiklikler yaptınız, bu 'çalışan kopyayı' kesiyor


3

Yeni bir dizinin içinde bir dosya oluşturduysanız, dizini eklemeniz gerektiğinden 'svn add newdir / newfile' yerine 'svn add newdir' kullanın. Dizin içindeki tüm dosyalar varsayılan olarak eklenir.


1

Az önce "çalışan bir kopya değil" aldım ve benim için sebep Unix'teki Automouter idi. Sadece yeni bir "cd / path / to / work / directory" hile yaptı.


1

Aynı şekilde, bir 'katkı' klasörünü güncellemem gerekiyordu:

  1. Eski klasörü taşıdı,
  2. Yenisini kopyaladı
  3. .Svn klasörlerinin her birine (benim durumumda yalnızca üç) yeni klasöre kopyalandı.

Benim durumum da sorun silinmiş .svn klasörleri nedeniyle oldu.

Çözüldü.


Eclipse eklentisini kullanarak SVN temizleme içine yaklaşık 4 saat bulundu - iyi zamanlar! Çalışan kopya kilitli - hayır değil, daha iyi bir mesaj bul Eclipse insanlar, teşekkürler.
Darth Jon

1

Alt klasöründen .svn klasörünü kök klasöre yapıştırarak denedim. İşe yarıyor!!!


1

Ben de öyle yaptım:

  1. bagajı trunk_ olarak yeniden adlandır
  2. yeni bir klasör bagajı oluştur
  3. Birkaç dosya teslim alındıktan sonra yeniden teslim alın ve işlemi yarıda kesin
  4. Dosyaları trunk_ konumundan trunk konumuna taşıyın
  5. Svn temizleme yap
  6. Svn güncelleme yapın. Bu, dosyaların durumunu güncelleyecek ve ardından tüm dosyalarınız sürümlendirilecektir.

1

Ben de svn diff işleminde bu sorunu karşılamak, yanlış dosya yolundan kaynaklandı './', geçerli dosya dizinini belirtmek için eklemeniz gerekir .


0

svn: 'svn: // repourl / reponame / foldername' konumundaki havuz uuid 'm / reponame' u içeriyor, ancak WC 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

Her alt sürüm deposunun benzersiz bir tanımlayıcısı (uuid) vardır. Subversion, anahtarlama gibi şeyleri yaparken deponun gerçekten aynı olduğundan emin olmak için bunu kullanır. Muhtemelen sunucudaki uuid'i eskisiyle aynı olacak şekilde değiştirmelisiniz.


Sunucuda uuid değiştirme - Nasıl yapılır?
Vijay Dev

Dürüst olmak gerekirse, hiçbir fikrim yok, sadece yapılabileceğini varsayıyorum. Subversion Kitabında bunun hakkında bir şey söylediğini kontrol ettin mi?
Aralık'ta JesperE

0

Çalışan bir kopya biçimi uyumsuzluğu olabilir mi? Svn 1.4 ve 1.5 arasında değişti ve daha yeni araçlar formatı otomatik olarak dönüştürdü, ancak daha sonra eskileri dönüştürülen kopyayla çalışmıyor.


0

Projenizden bir SVN tabanlı dosyayı silmiş olmanız gerekir (bunlar salt okunur dosyalardır). Bu nedenle bu hatayı alırsınız.

Yeni bir projeye tekrar göz atın, eski SVN projenizdeki değişiklikleri (varsa) "Winmerge" kullanarak yenisiyle birleştirin ve değişiklikleri en son çıkışınızda yapın.


0

@JesperE , uuid'i değiştirmeniz gerektiğini belirtiyor . Aşağıdakiler bunu başarmanıza yardımcı olacaktır.

SVN 1.5 ve üzeri sürümlerde svnadmin setuuid; svnlook uuid kullanarak doğru ayarlanıp ayarlanmadığını kontrol edebilirsiniz. SVN'nin önceki sürümlerinde, bu daha zor bir işlemdir. Bkz. Http://chestofbooks.com/computers/revision-control/subversion-svn/Managing-Repository-UUIDs-Reposadmin-Maint-Uuids.html

Ayrıca "m / reponame" UUID'si şüpheli görünüyor. Çalışma kopyası gibi onaltılık biçimli bir sayı olması gerektiğine inanıyorum, bu yüzden belki de bu eylem her şeyi iyileştirecektir :-)

[Başlangıçta @ JesperE'nin cevabı hakkında yorum yaptım , ancak bu cevabı insanlar için daha açık ve Google için daha yararlı hale getirmek için oluşturdum. O zamandan beri yorumlarımı kaldırdım. ]


0

Aynı sorun vardı, aynı makinede Slik 1.6.2 ve Tortoise vardı. Kaplumbağa güncellendi (ve çalışan kopyayı güncelleştirmişti), ancak Slik başaramadı, bu yüzden Kaplumbağa düzgün çalıştı, ancak komut satırları aşağıdakilerle başarısız oldu:

svn: '.' çalışan bir kopya dizini değil

Tortoise ve Slik'i kaldırmak, ardından Tortoise'ı komut satırı araçları etkinleştirilmiş olarak yeniden yüklemek bunu benim için düzeltti.


0

mac için: - sunucu tarafından ödeme alın ve yerel makinenizden dizin seçmek için yeni bir pencere açılacaktır, daha sonra tüm kodunuzu seçilen klasöre koyun, sonra svn yerel tarafını açın ve projeyi ekleyin ve tamamlayın


0

Bugün /FILE_NAME/ is not a working copysabah aynı sorunu buldum ve çözmek için iki saatten fazla harcadım. Uzun zamandır RND ve Google bazı çözüm buldum ve bu CHECKOUT.

  1. CHECKOUTdan SUBVERSIONyeni bir proje olarak yerele.
  2. Java dosyasındaki bazı kodları değiştirin ve projeyi KOMİTE EDİN.
  3. Benim için çalışıyor.

Umarım sizin için yararlı olacaktır.


0

Son zamanlarda Mac başka geliştiriciler kullanıyordum aynı durum vardı, sorun oldu; İlk önce terminal için repo yolunu yazmam gerekiyordu, ancak kullanıcı adınızın ve şifrenizin ne olduğunu söylemeden daha yapmadım.


0

Ben sadece .svn dizini farklı bir makinede bir nfs sunucusunda olduğu ve nfs istemcisi dosya kilitleme hizmeti ( lockd) çalışmıyordu bir durumda koştu .

svn: E155007: '/mnt/svnworkdir' is not a working copy

Bu bir kez gitti lockd nfs istemci ana bilgisayarında başlatıldıktan .

Subversion, dosyaları kilitleme sorunu olduğunda daha iyi bir hata mesajı ile gelebilir gibi görünüyor. Bu yıkım 1.10.0


0

Aynı projeden farklı bir konuma yeni bir ödeme yaptım. Daha sonra .svn klasörünü kopyaladım ve eski .svn klasörü ile değiştirdim. Bundan sonra svn güncelleme fonksiyonu denir ve her şey güncel şekilde düzgün bir şekilde senkronize edilir.


-1

Yerel makinenizde bulunan .svn klasörünü silin. Windows simgesine basın ve .svn yazın, tüm klasörü silin. Benim için çalıştı.

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.