2008-09-19 13 views
50

Cuando se comprometen consigo este error de Subversion:¿Cómo puedo solucionar este error de Subversion MKCOL?

bash-2.05b$ svn commit -m "testing subversion, still" 
Adding   baz 
svn: Commit failed (details follow): 
svn: MKCOL of '/viper/!svn/wrk/6b9bcd38-b2fe-0310-95ff-9d1a44098866/sandboxes/ohammersmith/trunk/baz': 405 Method Not Allowed (http://svn.example.com) 
+0

Cuando me pasó fue porque en lugar de hacer una Baz mkdir, hice un cp -PR ./foo/ ./baz --thereby conseguir el ./baz/.svn/ dir que contiene información SVN para el directorio de foo. Para solucionarlo, acabo de ejecutar rm -rf baz/.svn y luego pude agregar svn, svn ci ... – MarkHu

Respuesta

79

Esto sucede cuando se ha añadido un directorio que otra persona también ha añadido y ya ha confirmado. El mensaje de error en una confirmación es muy confuso, pero si lo hace un lugar svn up verá este mensaje:

bash-2.05b$ svn up 
svn: Failed to add directory 'baz': object of the same name already exists 

Para resolver el problema, quite el directorio (o mover a un lado) y hacer un svn update a obtener la versión en el servidor y volver a hacer los cambios.

Como regla general, asegúrese de hacer svn update ya que los mensajes de error tienden a ser más útiles.

+8

A veces surge el problema pero una actualización es inútil porque, curiosamente, Subversion no intenta recuperar el directorio del repositorio; este es a menudo el caso cuando se usa Tortoise SVN. La solución es, entonces, acceder al repositorio mismo, p. utilizando el "Repo-navegador" de Tortoise SVN, y para eliminar el directorio. Luego, debería poder agregar y enviar sus datos locales al repositorio. – Pragmateek

+1

Pragmateek: eso puede ser peligroso si no eres el único que trabaja en los archivos de esa carpeta. La forma más segura es como sugirió Otto. Aparte el directorio local, actualice su copia local (o ejecute una nueva copia si la actualización no funciona), luego copie su carpeta arriba (para obtener cualquier cambio). SVN luego recogerá los cambios y no perderá todo el trabajo que todos los demás hicieron en esa carpeta desde su última actualización. –

+0

¿Cómo solucionarlo en MS Windows? –

9

Esto sucede cuando ha agregado un directorio que alguien más también ha agregado y que ya ha confirmado.

Esto es algo para indicar conflicto pero a nivel de directorios (solo para entender).

Para resolver esto, simplemente hacer svn update antes de confirmar los cambios

Cuestiones relacionadas