2009-04-03 16 views
35

directorios SVN son convenientemente fácil de mover entre ordenadores, pero esto puede ocasionar conflictos de versiones entre la copia de trabajo y el cliente SVN instalado resultando en el error¿Cómo puedo degradar la versión de una copia de trabajo SVN?

svn: This client is too old to work with working copy '.'; 
    please get a newer Subversion client 

En un mundo ideal se podría instalar una nueva versión del SVN cliente, pero cuando esto no es posible o conveniente, sería bueno poder degradar la copia de trabajo a la versión del cliente instalado, especialmente cuando se sabe que ninguna de las funciones de la versión posterior se está utilizando.

Comprobar una nueva copia de trabajo con el cliente anterior solo funciona si la copia de trabajo problemática no tiene ningún cambio, y no es demasiado grande para que no sea conveniente.

El escenario para imaginar sería algo así como: Joe le envía una gran copia de trabajo con muchos directorios anidados (y carpetas .svn versionadas asociadas). Usted trabaja en eso. Cuando intentas cometerlo, svn te dice que tu cliente es demasiado viejo. Devolvérselo a Joe no debería ser necesario. No debería ser necesario verificar una nueva copia de trabajo y fusionar los cambios sería inconveniente en cualquier caso.

¿Hay alguna manera de hacer esto?

Respuesta

36

Respuesta corta: no es trivial.

Afortunadamente, los desarrolladores anticiparon este problema y tratar con él en un FAQ: http://subversion.apache.org/faq.html#working-copy-format-change
siendo descargar y utilizar su guión para el propósito El resultado: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

Tenga en cuenta que el guión sólo quiere lo importante número de versión del cliente, así que si tienes la versión 1.4.4 del cliente el comando sería:

python change-svn-wc-format.py <WC_PATH> 1.4 [...other options...] 


Actualización:

La secuencia de comandos anterior solo funciona para la versión 1.6 y versiones anteriores. La degradación de 1.7+ aparentemente no es posible. La nota de la fuente:

# Downgrading from format 11 (1.7) to format 10 (1.6) is not possible, 
# because 11 does not use has-props and cachable-props (but 10 does). 
# Naively downgrading in that situation causes properties to disappear 
# from the wc. 
# 
# Downgrading from the 1.7 SQLite-based format to format 10 is not 
# implemented. 
+0

Así que supongo que esto es trivial ... gracias por la publicación demostró ser útil –

+2

"Puede degradar las copias de trabajo 1.6.x a formatos utilizables por Subversion 1.4.x y 1.5.x, pero no puede cambiar a versiones 1.7.x copias de trabajo " –

+0

Cómo hacerlo recursivamente para todas las subcarpetas también – aProgrammer

5

Acabo de eliminar la carpeta .svn en el archivo de proyecto que 1.7 creó y volvió a agregar la solución usando 1.6. Esto funcionó para mí espero que ayude a alguien más.

Cuestiones relacionadas