SVN 405 Yöntemine İzin Verilmiyor


122

SVN'de yanlışlıkla bir klasörü sildim ve hemen geri ekledim. Bununla ilgili bir sorunla karşılaştım ve çözümüm, klasörü yerel kopyamdan ve sunucu kopyasından tamamen kaldırdı. Başka herhangi bir dosya veya klasörde sorunsuz güncelleme ve işlem yapabilirim, ancak aynı ad, ekleme ve işleme ile bir klasör oluşturmaya çalışırsam bana şu hatayı verir:

svn: Sunucu, '/ svn / www /! svn / wrk / 9de0d765-2203-456c-af16-58e792ec7ac0 / trunk / htdocs / solutions / medical' için MKCOL isteğine yanıt olarak beklenmeyen dönüş değeri (405 Yönteme İzin Verilmiyor) gönderdi

Sayısız temizlik, taahhüt, güncelleme vb. Çalıştırdım. Hiçbir şey sorunu çözmez. Fikirler?

Bilginize, üst düzey klasörü yeniden adlandırma seçeneğim yok.


Bir alt dizini kaldırmaya çalışırken aynı şeyi yapmaya çalıştım, böylece onu düzgün bir şekilde görmezden gelebilirdim. Bir şekilde kendi kendine çözüldü ve elementlerin hangi gizemli kombinasyonunun buna izin vermek için çakıştığını gerçekten bilmiyorum, bu yüzden sorumu bir kenara attım. Yeni olanım: Neden hepimiz kullanmıyoruz git?
icedwater 01

Yanıtlar:


170

Tahminimce eklemeye çalıştığınız klasör SVN'de zaten mevcut . Dosyaları farklı bir klasöre teslim ederek onaylayabilir ve bagajın gerekli klasöre zaten sahip olup olmadığını görebilirsiniz.


1
Bunu başka bir kontrol edilmiş sürümde doğruladım. Çalışma kopyam neden onunla güncellenmiyor, belirleyemiyorum.
roadunknown

1
Burada da durum böyleydi, ancak klasörü ayrı bir klasörde kontrol etmem gerekiyordu (daha doğrusu, "foo" olarak yeniden adlandırdım ve svn'yi yeniden adlandırdım ve başarılı kaydetmeme rağmen "silinmiş" klasör dahil olmak üzere onu geri aldım silme.)
Kalle

1
@Shaji: Durumunuzu anlıyorum. Ama bu hata nedeniyle hala nasıl işlenebilirim? Ya da yapılacak bir şey var, lütfen söyle bana. Teşekkürler.
Huy Tower

1
Klasörde bir SVN güncellemesi yapın ve ardından kaydetmeyi tekrar deneyin.
Alex R

Bu can sıkıcı bir hatadır. Github'dan yeni bir depoyu kontrol ettim ve yeni bir klasör yerleştirdim. Hep aynı hatayı gösterir. Çözümünüzü denedim ama işe yaramıyor.
emeraldhieu

56

Düzeltmenin en hızlı yolu, etkilenen klasörü çoğaltmak ve onu alternatif bir adla kaydetmekti. Sonra svn mv duplicateFolder originalFolder. Çok kolay.

Bu nedenle, klasör1'i alın ve bir klasör1 Kopyala yapın:

svn delete folder1
svn add folder1Copy

Kaydet ve güncelle:

svn mv folder1Copy/ folder1/

Tekrar kaydet ve düzeltildi.


6
Bu benim için harika çalıştı ve ikinci bir çalışma kopyasıyla uğraşmaktan çok daha basit.
Justin

Umarım commit & update, Unix'te her ikisini de paralel olarak yapmaya çalışan gerçek bir komut satırı değildir.
LarsH

1
Güneşli vale'ye gelirseniz ve bir şekilde beni bulursanız, size kahve ısmarlarım.
Michael Voznesensky

10

"Kaybolan" klasörüm libraries/fof.

Onu sildiysem, sonra bir güncelleme yaptıysam, görünmezdi.

cd libaries
svn up

(hiçbir şey olmuyor).

Ancak gerçek adla güncelleme:

svn update fof

hile yaptı ve güncellendi. Bu yüzden (manuel olarak tar ile arşivlenmiş) çalışma kopyamı üzerinde patlattım ve yeniden taahhüt ettim. En kolay çözüm.


Bunun en kolayı olduğuna katılıyorum. "Svn up" yerine "svn up [klasör]" yapın.
Dimitris

Bu çözüm benim için işe yarayan çözümdür. Teşekkür ederim.
Miguel

4

Bunu kendi depomda düzelttim. Windows'ta TortoiseSVN kullanıyorum, bu yüzden bunun komut satırında tam olarak hangi komuta çevrildiğinden emin değilim, ama işte yaptığım şey:

Sorunlu klasör çağrıldı libve eklenmesi gerekiyordu.

  • Önce eklemeyi geri aldım, böylece SVN artık buna dikkat etmiyordu.
  • Sonra libsWindows bağlam menüsünü kullanarak (önemli değil) yeniden adlandırdım , ekledim ve başarıyla tamamladım.
  • Sonunda, libTortoiseSVN'nin içerik menüsünü kullanarak yeniden adlandırdım (bu muhtemelen önemlidir) ve tekrar işledim.

3

Ben de şimdi bu problemle karşılaştım ve bu şekilde çözdüm. Bu yüzden buraya kaydettim ve başkaları için faydalı olmasını diliyorum.

Senaryo:

  1. Kodu işlemeden önce revizyon: 100
  2. (Bir başkası kodu işliyor ... revizyon 199'a yükseltildi)
  3. Ben ("svn up" çalıştırmayı unuttum) kodu işledim, şimdi revizyonum: 200
  4. "Svn up" çalıştırıyorum.

Hata oluştu.

Çözüm:

  1. $ mv current_copy copy_back # Geçerli kod kopyasını yeniden adlandırın
  2. $ svn checkout current_copy # Tekrar kontrol edin
  3. $ cp copy_back / current_copy # Değişikliklerinizi geri yükleyin

3

Benzer bir problemim vardı. Onu yörüngeden bombaladım ve bu süreçte SVN geçmişimi kaybettim. Ama en azından bu lanet hatayı ortadan kaldırdım.

Bu muhtemelen yürütülecek en uygun olmayan bir komut dizisidir, ancak işleri yürütmek için gerçekten yaptığım komut dizisini oldukça yakından izlemelidir:

cp -rp target ~/other/location/target-20111108
svn rm target --force
cp -rp ~/other/location/target-20111108 target-other-name
cd target-other-name
find . -name .svn -print | xargs rm -rf
cd ..
svn add target-other-name
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
svn mv target-other-name target
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"

Emin olmanın tek yolu bu.
TomDestry

1

code.google.comSubversion deponuzu barındırmak için kullanıyorsanız .

Aşağıdakileri biliyorsun, değil mi?

If you plan to make changes, use this command to check out the code as yourself using HTTPS:

# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://.../svn/trunk/ user-...

When prompted, enter your generated googlecode.com password.
Use this command to anonymously check out the latest project source code:

# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://.../svn/trunk/ ...-read-only

Tam olarak bahsettiğiniz hata Non-members may check out a read-only working copy anonymously over HTTPdurumu kullanıyorsunuz . Bu nedenle, şimdiye kadar hiçbir şey yapamaz veya yapamazsınız.

Bir Project members authenticate over HTTPS to allow committing changesşey kullanmalısın .

Şimdi iyi olacak.


0

Aynı sorunla karşılaştım ve şu şekilde düzeltebildim:

  1. Klasörü başka bir yere kopyalayın.
  2. .Svn'yi kopyalanan klasörden silin
  3. Orijinal klasöre sağ tıklayın ve 'SVN Checkout'u seçin
  4. Eğer (3) 'ü bulamazsan, senin davan benimkinden farklı.
  5. REPO-BROWSER'daki dizinin doğru olup olmadığına bakın. Benim durumum için sebep buydu.
  6. Çıkış yapmak
  7. Dosyaları kopyalanan klasörden orijinal dizine geri alın.
  8. Teslim Et.

0

Bu, svn'ye koymaya çalıştığınız klasör / dosyanın zaten orada olduğu anlamına gelir. Benim tavsiyem, herhangi bir şey yapmadan önce klasöre / dosyaya sağ tıklayın ve repo-browser'a tıklayın. Bunu yaparak, svn'de zaten mevcut olan tüm dosyaları / alt klasörleri vb. Görebileceksiniz. Gerekli dosya / klasör svn'de mevcut değilse, eklemek istediğiniz dosyayı silmeniz (yedek aldıktan sonra) ve ardından bir güncelleme çalıştırmanız yeterlidir.


0

Şu anda eklenmiş olan dizin, arşivde zaten kaydedilmiştir. Bu nedenle arşivdeki dizini silin ve aynı dizini tekrar işleyin.


0

Bu hatayı aldım çünkü URL adresini "/" ile biten yenisiyle değiştirdim. REPOSITORY tablosundaki .svn klasöründeki wc.db veritabanına kayıt demek istiyorum .

"/" İşaretini kaldırdığımda hata ortadan kalktı.

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.