Pregunta

Estoy tratando de encontrar una manera de eliminar los bloqueos de zombis utilizando las herramientas de línea de comandos de Subversion. El objetivo final es hacer esto desde un script gancho, pero no he sido capaz de elaborar la línea de comandos para su uso cuando sólo tiene una ruta de repositorio física. (El uso de rmlocks svnadmin sólo parece trabajo para cerraduras que existen en la revisión HEAD.)

Idealmente, me gustaría hacerlo a través del script gancho post-commit usando las herramientas de línea de comandos. (Soy consciente de la secuencia de comandos de Python para este propósito, pero prefiero no instalar Python en ese servidor para este uso individual.) Somos una tienda de .NET, por lo que la creación de una herramienta con la biblioteca es también un SharpSVN posibilidad, pero la única capacidad de desbloqueo no parece estar en la clase SVNClient.

Así que es realmente dos preguntas: ¿Hay una manera de hacer esto con las herramientas de línea de comandos? Si no, ¿hay una manera de hacerlo desde SharpSVN? (O tal vez otra biblioteca?)

== Actualización Dic 3, 2012 ==

he tenido que volver a este problema recientemente y descubrió esta pregunta todavía está atrayendo tráfico. La secuencia de comandos Python menciona en la pregunta original y puesto que la respuesta de Don ha trasladado a: http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/remove-zombie-locks.py (supongo que eso es lo la mayoría de la gente está buscando.)

Irónicamente, a pesar de que el repositorio se ha movido a Linux, estamos utilizando la solución C.

¿Fue útil?

Solución 2

Parece que la respuesta es "No se puede llegar desde aquí."

  • svnadmin proporciona una línea de comandos para la eliminación de bloqueos con una ruta del repositorio, pero no parece que el trabajo con las cerraduras de zombies.
  • SharpSVN es sobre todo del lado del cliente; que tiene unos pocos métodos para conectar con una ruta de repositorio, pero aquellos (por los docs) son principalmente para su uso en pruebas de unidad de la biblioteca.

Así que volver a escribir la secuencia de comandos Python en C usando la biblioteca API de Subversion.

Otros consejos

Hay una Python guión (referenciado aquí: http://subversion.tigris.org /ds/viewMessage.do?dsForumId=1065&dsMessageId=2369399 ). Que haría uso de eso, o traducirlo al .NET si necesita.

Si conoce la ruta del repositorio al archivo borrado que es zombi salida al mar, es tan simple que no podía creer al principio:

svn unlock --force https://path/to/my/file

Esto funciona a pesar de que el archivo borrado hace (por definición) no existe en la cabeza del repositorio. No se requiere la revisión de PEG y no se permitirá. La opción force sólo es necesario si el bloqueo es de otro usuario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top