Metode SVN 405 Tidak Diizinkan


122

Saya tidak sengaja menghapus folder di SVN dan segera menambahkannya kembali. Saya mengalami masalah dengan ini dan solusi saya akhirnya menghapus folder sepenuhnya dari salinan lokal saya serta salinan server. Saya dapat melakukan pembaruan dan melakukan tanpa masalah pada file atau folder lain, tetapi jika saya mencoba membuat folder dengan nama yang sama, menambah, dan melakukan, itu memberi saya kesalahan berikut:

svn: Server mengirimkan nilai pengembalian yang tidak terduga (Metode 405 Tidak Diizinkan) sebagai tanggapan atas permintaan MKCOL untuk '/ svn / www /! svn / wrk / 9de0d765-2203-456c-af16-58e792ec7ac0 / trunk / htdocs / solutions / medical'

Saya telah menjalankan pembersihan yang tak terhitung jumlahnya, melakukan, memperbarui, dll. Tidak ada yang menyelesaikan masalah. Ide ide?

FYI, saya tidak memiliki opsi untuk mengganti nama folder tingkat atas.


Saya mencoba melakukan hal yang sama saat mencoba menghapus subdirektori sehingga saya dapat mengabaikannya dengan benar. Entah bagaimana itu menyelesaikan sendiri dan saya tidak benar-benar tahu kombinasi misterius apa dari elemen-elemen yang bertepatan untuk memungkinkan ini, jadi saya membuang pertanyaan saya. Yang baru saya adalah: mengapa kita tidak menggunakan semua git?
es

Jawaban:


170

Dugaan saya adalah bahwa folder yang Anda coba tambahkan sudah ada di SVN. Anda dapat mengonfirmasi dengan memeriksa file ke folder lain dan melihat apakah trunk sudah memiliki folder yang diperlukan.


1
Saya memverifikasi ini pada versi lain yang diperiksa. Mengapa copy pekerjaan saya tidak memperbaruinya, saya tidak dapat menentukan.
Roadunknown

1
Kasusnya juga ada di sini, tapi saya harus memeriksa folder di folder terpisah (atau lebih tepatnya, saya menamainya "foo" dan svn up'd dan mendapatkannya kembali, termasuk folder "dihapus", meskipun saya berhasil melakukan menghapusnya.)
Kalle

1
@ Shaji: Saya mengerti kasus Anda. Tapi bagaimana saya masih bisa berkomitmen karena kesalahan ini? Atau ada yang harus dilakukan, Tolong beritahu saya. Terima kasih.
Menara Huy

1
Lakukan pembaruan SVN pada folder tersebut, lalu coba lakukan lagi.
Alex R

Ini adalah kesalahan yang mengganggu. Saya memeriksa repositori baru dari Github dan melakukan folder baru. Itu selalu menunjukkan kesalahan yang sama. Sudah mencoba solusi Anda tetapi tidak berhasil.
emeraldhieu

56

Cara tercepat bagi saya untuk memperbaikinya adalah dengan menduplikasi folder yang terpengaruh, dan mengkomitnya dengan nama alternatif. Lalu svn mv duplicateFolder originalFolder. Sangat mudah.

Jadi, ambil folder1 dan buat folder1Salin:

svn delete folder1
svn add folder1Copy

Berkomitmen dan perbarui:

svn mv folder1Copy/ folder1/

Berkomitmen lagi dan sudah diperbaiki.


6
Ini bekerja dengan baik untuk saya dan jauh lebih sederhana daripada berurusan dengan copy pekerjaan kedua.
Justin

Semoga commit & updatebukan baris perintah literal ... di Unix yang akan mencoba melakukan keduanya secara paralel.
LarsH

1
Tuan yang luar biasa baik jika Anda datang ke sunnyvale dan entah bagaimana menemukan saya, saya akan membelikan Anda kopi.
Michael Voznesensky

10

Folder "menghilang" saya dulu libraries/fof.

Jika saya menghapusnya, lalu menjalankan pembaruan, itu tidak akan muncul.

cd libaries
svn up

(tidak ada yang terjadi).

Tetapi memperbarui dengan nama sebenarnya:

svn update fof

melakukan trik dan diperbarui. Jadi saya meledakkan copy pekerjaan saya (diarsipkan secara manual) di atasnya dan berkomitmen kembali. Solusi termudah.


Setuju ini adalah yang termudah. Lakukan saja "svn up [folder]" daripada "svn up".
Dimitris

Solusi ini yang berhasil untuk saya. Terima kasih.
Miguel Rentes

4

Saya baru saja memperbaikinya di repositori saya sendiri. Saya menggunakan TortoiseSVN di Windows, jadi saya tidak yakin persis perintah apa yang diterjemahkan ini pada baris perintah, tapi inilah yang saya lakukan:

Folder yang bermasalah dipanggil lib, dan sudah seharusnya ditambahkan.

  • Pertama saya membatalkan add, sehingga SVN tidak lagi memperhatikannya.
  • Kemudian saya mengganti namanya (menjadi libs, bukan yang penting) menggunakan menu konteks Windows, menambahkannya, dan berhasil berkomitmen.
  • Akhirnya saya mengganti namanya kembali libmenggunakan menu konteks TortoiseSVN (ini mungkin penting), dan berkomitmen lagi.

3

Saya juga menemui masalah ini sekarang dan menyelesaikannya dengan cara ini. Jadi saya rekam di sini, dan semoga bermanfaat untuk orang lain.

Skenario:

  1. Sebelum saya memasukkan kode, revisi: 100
  2. (Orang lain melakukan kode ... revisi meningkat menjadi 199)
  3. Saya (lupa menjalankan "svn up",) mengkomit kode, sekarang revisi saya: 200
  4. Saya menjalankan "svn up".

Terjadi kesalahan.

Larutan:

  1. $ mv current_copy copy_back # Ubah nama salinan kode saat ini
  2. $ svn checkout current_copy # Lihat lagi
  3. $ cp copy_back / current_copy # Kembalikan modifikasi Anda

3

Saya memiliki masalah serupa. Saya akhirnya melakukan nuking dari orbit, dan kehilangan sejarah SVN saya dalam prosesnya. Tapi setidaknya aku membuat kesalahan sialan itu lenyap.

Ini mungkin urutan perintah yang kurang optimal untuk dieksekusi, tetapi harus cukup dekat mengikuti urutan perintah yang sebenarnya saya lakukan agar semuanya berfungsi:

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"

Itu satu-satunya cara untuk memastikan.
TomDestry

1

Jika Anda menggunakan code.google.comuntuk menghosting repositori Subversion Anda.

Anda tahu hal-hal di bawah ini, bukan?

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

Kesalahan yang Anda sebutkan persis Anda menggunakan Non-members may check out a read-only working copy anonymously over HTTPstatus. Oleh karena itu, Anda tidak dapat melakukan atau melakukan apa pun sejauh ini.

Anda harus menggunakan Project members authenticate over HTTPS to allow committing changessesuatu.

Ini akan baik-baik saja sekarang.


0

Saya mengalami masalah yang sama dan dapat memperbaikinya dengan:

  1. Salin folder tersebut ke tempat lain.
  2. Hapus .svn dari folder yang disalin
  3. Klik kanan folder asli dan pilih 'SVN Checkout'
  4. Jika Anda tidak dapat menemukan (3), maka kasus Anda berbeda dengan saya.
  5. Lihat apakah direktori pada REPO-BROWSER sudah benar. Untuk kasus saya, inilah penyebabnya.
  6. Periksa
  7. Dapatkan kembali file dari folder yang disalin ke direktori asli.
  8. Melakukan.

0

Artinya folder / file yang Anda coba taruh di svn sudah ada di sana. Saran saya adalah sebelum melakukan apapun klik kanan pada folder / file dan klik repo-browser. Dengan melakukan ini Anda akan dapat melihat semua file / sub-folder dll yang sudah ada di svn. Jika file / folder yang diperlukan tidak ada di svn maka Anda cukup menghapus (setelah mengambil cadangan) file yang ingin Anda tambahkan dan kemudian jalankan pembaruan.


0

Direktori yang ditambahkan saat ini sudah dimasukkan ke dalam repositori. Jadi hapus direktori di repositori dan lakukan direktori yang sama lagi.


0

Saya mendapat kesalahan ini karena saya mengganti alamat URL dengan alamat baru yang diakhiri dengan "/". Maksud saya, catatan dalam database wc.db di folder .svn di tabel REPOSITORY.

Ketika saya menghapus tanda: "/" maka kesalahan itu hilang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.