2009-06-30 10 views
5

He oído en el pasado que no es seguro compartir una copia de trabajo de Subversion entre el sistema operativo.¿Es seguro compartir una copia de trabajo de Subversion entre SO?

ej .:

  1. copia una copia de trabajo de una máquina Windows a una máquina Linux, y utilizar Linux la acumulación de SVN en él.
  2. En una máquina con Windows, acceda/manipule una copia de trabajo SVN con los binarios de Windows y los binarios CygWin de SVN. (Es posible que desee hacer esto para usar this solution por ejemplo).

Pero no he escuchado definitivamente si podría causar daños en los datos .svn. Es cierto que los problemas de EOL podrían ser un problema si svn: eol-style está establecido en nativo.

¿Cuál es el estado actual de este problema? ¿Ha cambiado en versiones más recientes de SVN? ¿Es seguro siempre que se tomen ciertas precauciones (por ejemplo, no revisar/actualizar archivos con svn: eol-style = native en ambas plataformas)?

+3

Tengo curiosidad por saber por qué copiarías el repositorio en lugar de simplemente registrarme/registrarme. –

+0

Por un lado, estoy en Japón y hay un repositorio de 2 GB en Australia a través de un enlace corporativo de 128 kbps. Pero también el caso de uso 2 en la pregunta por su naturaleza implica el acceso a una copia de trabajo en el lugar con las herramientas de CygWin. –

+0

He copiado el repositorio (basado en archivos) cuando viajo, para proyectos en los que trabajo solo, y luego lo copio de nuevo. Aunque no he sido un juego para ir a través del sistema operativo cruzado. –

Respuesta

5

He utilizado svn en un directorio de red compartido entre Unix, Linux, Solaris y Windows; anecdóticamente, el único problema con el que me encontré es que las diferentes versiones del cliente svn son 'incompatibles'. Las máquinas linux y unix estaban equipadas con una versión de svn más antigua que Solaris svn; que a su vez era más viejo que el cliente de la máquina de Windows. El resultado es que ejecutar 'svn up' actualiza los archivos de metadatos a cualquier cliente que se esté ejecutando; y el cliente no accederá a los archivos con una versión de metadatos más reciente. El resultado final es que los clientes svn deben mantenerse en el mismo número de versión.

Así que, sí, he podido mover un directorio de trabajo entre máquinas con una pérdida de vida mínima. Dicho esto, nunca he usado ninguna opción de svn más allá de lo predeterminado.

+2

Tenga en cuenta que puede mezclar clientes svn siempre que se encuentren en la misma familia de versiones, p. Ej. todo en 1.5.xo todo en 1.6.x. –

1

Mi repositorio svn está en Linux. Tengo una copia de trabajo en Linux y otra en WindowXP.

En WindowXP, uso cygwin para acceder a mi copia de trabajo. A veces uso también Tortoise para tener un diff visual, un historial completo de un archivo ...

Nunca trato de restaurar (o crear una copia de seguridad) desde un repositorio de Linux creado con svndump a una computadora con Windows.

[EDIT]

me olvidó mencionar que la actualización funciona perfectamente tanto con la copia de trabajo.

1

Desde mi experiencia, funciona.

Sin embargo, a veces hay problemas de sensibilidad entre mayúsculas y minúsculas entre Windows y Linux. Las carpetas "Build" y "build" colisionan y cosas como ".htaccess". Pero nada difícil de arreglar.

1

Como se mencionó en CoderTao, usar diferentes versiones de svn (cliente) en una copia de trabajo puede causar actualizaciones silenciosas del formato WC, así que asegúrese de quedarse dentro de una única familia de versiones para evitar eso.

Aparte de su pregunta principal, veo que está trabajando con un repositorio de SVN a través de un enlace lento. Es posible que desee examinar los sistemas de control de fuente distribuida que están diseñados para ese tipo de cosas.

Como ejemplo, Bazaar (bazaar-vcs.org) tiene un complemento bzr-svn que le permitirá crear una sucursal local de un repositorio de SVN remoto. Luego tiene una sucursal local rápida que puede consultar en múltiples ubicaciones, trabajar localmente, modificar, explorar el historial, etc. Puede comprometerse localmente y mantener sincronizadas sus sucursales locales (Japón) sin compromisos lentos con Australia. Una vez que todo está bien, empujas tus cambios hacia arriba a SVN. Si está interesado, hay muchos documentos de ejemplo de flujo de trabajo en la wiki de Bazar. :)

1

Aparte de otras respuestas (ya que parecen sugerir que esto es factible), puedo informar categóricamente que compartimos una copia de trabajo (en nuestro caso a través de un recurso Samba) donde teníamos "svn: eol-style native" en use hizo nos causó problemas, y tratamos de evitarlo.

Si necesitáramos copiar una carpeta de trabajo entre máquinas (una forma más limitada de compartirla, presumiblemente como una operación de una sola vez) esperaríamos tener que entrar y realizar conversiones CRLFTOLF en todos los svn: eol-style archivos, y de hecho lo hemos hecho en el pasado al escribir una utilidad para recorrer el árbol, examinar las propiedades svn y convertir los archivos según sea necesario (todo en Python).

Por lo tanto, para que conste, declararé definitivamente que este es un problema.

+0

Gracias. Eso tiene buen sentido. –

Cuestiones relacionadas