Método SVN 405 no permitido


122

Accidentalmente eliminé una carpeta en SVN y la volví a agregar de inmediato. Me encontré con un problema con esto y mi solución terminó eliminando la carpeta por completo de mi copia local, así como la copia del servidor. Puedo hacer actualizaciones y confirmaciones sin problemas en cualquier otro archivo o carpeta, pero si intento crear una carpeta con el mismo nombre, agregar y confirmar, me da el siguiente error:

svn: el servidor envió un valor de retorno inesperado (método 405 no permitido) en respuesta a la solicitud de MKCOL para '/ svn / www /! svn / wrk / 9de0d765-2203-456c-af16-58e792ec7ac0 / trunk / htdocs / solutions / medical'

He ejecutado innumerables limpiezas, confirmaciones, actualizaciones, etc. Nada resuelve el problema. Ideas?

Para su información, no tengo la opción de cambiar el nombre de la carpeta de nivel superior.


Traté de hacer lo mismo al intentar eliminar un subdirectorio para poder ignorarlo correctamente. De alguna manera se resolvió y no sé qué combinación arcana de los elementos coincidió para permitir esto, así que descarté mi pregunta. Mi nuevo es: ¿por qué no todos lo usamos git?
agua helada

Respuestas:


170

Supongo que la carpeta que está intentando agregar ya existe en SVN. Puede confirmar revisando los archivos en una carpeta diferente y ver si el tronco ya tiene la carpeta requerida.


1
Verifiqué esto en otra versión revisada. No puedo determinar por qué mi copia de trabajo no se actualizará con ella.
roadsunknown

1
También fue el caso aquí, pero tuve que verificar la carpeta en una carpeta separada (o más bien, le cambié el nombre por "foo" y svn up'd y la recuperé, incluida la carpeta "eliminada", a pesar de mi compromiso exitoso de eliminarlo.)
Kalle

1
@ Shaji: Entiendo tu caso. Pero, ¿cómo puedo seguir comprometido debido a este error? O hay algo que hacer, por favor dime. Gracias.
Huy Tower

1
Realice una actualización de SVN en la carpeta y luego intente la confirmación nuevamente.
Alex R

Este es un error molesto. Revisé un nuevo repositorio de Github y confirme una nueva carpeta. Siempre muestra el mismo error. Intenté su solución pero no funciona.
emeraldhieu

56

La forma más rápida de solucionarlo fue duplicar la carpeta afectada y confirmarla con un nombre alternativo. Entonces svn mv duplicateFolder originalFolder. Muy fácil.

Entonces, toma la carpeta1 y crea una carpeta1Copia:

svn delete folder1
svn add folder1Copy

Comprometerse y actualizar:

svn mv folder1Copy/ folder1/

Comprometerse de nuevo y está arreglado.


66
Esto funcionó muy bien para mí y es mucho más simple que tratar con una segunda copia de trabajo.
Justin

Esperemos commit & updateque no sea una línea de comando literal ... en Unix que intente hacer ambas cosas en paralelo.
LarsH

1
Brillante, buen señor, si vienes a Sunnyvale y me encuentras de alguna manera, te compraré café.
Michael Voznesensky

10

Mi carpeta "desaparecida" era libraries/fof .

Si lo eliminé, luego ejecuté una actualización, no se mostraría.

cd libaries
svn up

(no pasa nada).

Pero actualizando con el nombre real:

svn update fof

hizo el truco y se actualizó. Así que exploté mi copia de trabajo (archivado manualmente en tar) y volví a comprometerme. La solución más fácil.


De acuerdo, esto es lo más fácil. Simplemente haga "svn up [carpeta]" en lugar de "svn up".
Dimitris

Esta solución es la que funcionó para mí. Gracias.
Miguel Rentes

4

Acabo de arreglar esto en mi propio repositorio. Estoy usando TortoiseSVN en Windows, así que no estoy seguro exactamente a qué comandos se traduce esto en la línea de comandos, pero esto es lo que hice:

Se llama a la carpeta problemática liby se debía agregar.

  • Primero deshice el complemento, para que SVN ya no le prestara atención.
  • Luego lo cambié de nombre (a libs, no es que eso importe) usando el menú contextual de Windows, lo agregué y me comprometí con éxito.
  • Finalmente lo renombré nuevamente para libusar el menú contextual de TortoiseSVN (esto probablemente es importante), y me comprometí nuevamente.

3

También encontré este problema hace un momento y lo resolví de esta manera. Así que lo grabé aquí, y deseo que sea útil para otros.

Guión:

  1. Antes de confirmar el código, revisión: 100
  2. (Alguien más confirma el código ... la revisión aumentó a 199)
  3. (Olvidé ejecutar "svn up"), confirmo el código, ahora mi revisión: 200
  4. Ejecuto "svn up".

El error ocurrió

Solución:

  1. $ mv current_copy copy_back # Renombrar la copia del código actual
  2. $ svn checkout current_copy # Compruébelo nuevamente
  3. $ cp copy_back / current_copy # Restaura tus modificaciones

3

Tuve un problema similar. Terminé destruyéndolo desde la órbita, y perdí mi historial SVN en el proceso. Pero al menos hice que ese maldito error desapareciera.

Esta es probablemente una secuencia de comandos subóptima para ejecutar, pero debería seguir bastante de cerca la secuencia de comandos que realmente hice para que las cosas funcionen:

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"

Es la única forma de estar seguro.
TomDestry

1

Si utiliza code.google.com para alojar su repositorio de Subversion.

Sabes a continuación las cosas, ¿verdad?

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

El error que mencionó exactamente que está utilizando Non-members may check out a read-only working copy anonymously over HTTP estado. Por lo tanto, no puede comprometerse ni hacer nada hasta ahora.

Debes usar Project members authenticate over HTTPS to allow committing changes cosa.

Estará bien ahora.


0

Encontré el mismo problema y pude solucionarlo:

  1. Copie la carpeta a otro lugar.
  2. Eliminar .svn de la carpeta copiada
  3. Haga clic derecho en la carpeta original y seleccione 'SVN Checkout'
  4. Si no puede encontrar (3), entonces su caso es diferente al mío.
  5. Vea si el directorio en el REPO-BROWSER es correcto. Para mi caso, esta fue la causa.
  6. Revisa
  7. Recupere los archivos de la carpeta copiada en el directorio original.
  8. Cometer.

0

Esto significa que la carpeta / archivo que está intentando poner en svn ya existe allí. Mi consejo es que antes de hacer algo, haga clic derecho en la carpeta / archivo y haga clic en el navegador de repositorios. Al hacer esto, podrá ver todos los archivos / subcarpetas, etc. que ya están presentes en svn. Si el archivo / carpeta requerido no está presente en el svn, simplemente elimine (después de realizar una copia de seguridad) el archivo que desea agregar y luego ejecute una actualización.


0

El directorio agregado actualmente ya está confirmado en el repositorio. Así que elimine el directorio en el repositorio y confirme el mismo directorio nuevamente.


0

Recibí este error porque reemplacé la dirección URL por una nueva que terminara con "/". Me refiero a grabar en la base de datos wc.db en la carpeta .svn en la tabla REPOSITORY.

Cuando eliminé el signo: "/", el error desapareció.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.