Pregunta

Algunas veces, me metí en situaciones en las que uno de mis repositorios SVN se corrompió y pudimos hacer cualquier cosa con algunas versiones o ramas del proyecto sin saber realmente lo que hicimos. Entonces, ¿qué puede hacer que un repositorio se corrompa?


Parece que las incompatibilidades entre clientes pueden causar problemas, más específicamente con los juegos de caracteres.

¿Fue útil?

Solución

Hay básicamente tres casos distintos:

  1. Hardware defectuoso (memoria, corrupción de fs, etc.)
  2. El usuario con acceso de inicio de sesión al servidor puede dañar los archivos del repositorio.
  3. Errores en Subversion.

El hardware defectuoso suele ser el más difícil de detectar, excepto en los casos más obvios. El caso 2 se puede prevenir limitando el acceso de inicio de sesión al servidor. Todo lo demás es un error en Subversion. (Esto incluye problemas de compatibilidad entre el cliente y el servidor). nunca debería ser capaz de corromper el repositorio simplemente usando un cliente Subversion (ni siquiera cuando hay un error en el cliente, IMO).

Otros consejos

¿Posible corrupción del sistema de archivos o alguien jugando con los directorios internos de svn?

Siempre existe la posibilidad de que el hardware sea defectuoso. Cosas como errores de bit en la memoria pueden causar corrupción silenciosa en lugar de simplemente bloquear la computadora; si un proceso del servidor svn es el afectado, el repositorio puede corromperse.

Si los repositorios no están en el disco local de los servidores svn, sino en NFS, pueden corromperse si usan el formato berkley db. En svn 1.5, FSFS se convirtió en el valor predeterminado para nuevos repositorios: es perfectamente feliz vivir en sistemas de archivos sin bloqueo, como NFS.

Me ha pasado varias veces. SVN no parece funcionar bien si el cliente desaparece mientras el servidor tarda mucho en hacer ciertas cosas. No conozco los detalles exactos, pero he hecho algunos kill -9 s en lo que pensé que eran procesos de solo lectura y terminé teniendo que ejecutar una limpieza de svnadmin después antes de que el servidor responda nuevamente.

Tuve una corrupción en el repositorio que me llevó un tiempo descubrir. En el servidor, accidentalmente cambié el propietario del directorio .svn en el repositorio a un usuario no relacionado. SVN me dio errores de corrupción después de eso hasta que eliminé y volví a crear el repositorio. Incluso después de corregirlo. golpea la frente

Esto es bastante común en repositorios basados ??en file: // , sin embargo, si tiene un solo usuario / servicio accediendo al repositorio, esto no sucederá.

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