tortoise subir proyecto español desvincular create con como carpeta archivos svn replace directory

svn - subir - ¿La mejor manera de reemplazar un árbol de directorios completo en Subversion?



tortoise svn server (5)

Dentro de mi proyecto de Subversion tengo algunos directorios que contienen otros proyectos de código abierto que mi código necesita. Por ejemplo ffmpeg, freetype, matrixssl y algunos otros.

¿Cuál es la mejor manera de actualizar SVN para mantener la última versión de uno de estos proyectos?

Esencialmente haré lo siguiente (usando ffmpeg como ejemplo):

1) Rename current ffmpeg folder to ffmpeg.old 2) Download new version of ffmpeg from net 3) Make sure it and my code compile and work fine together 4) Update subversion to now hold the "new" version of ffmpeg 5) Delete ffmpeg.old directory tree


Creo que tienes dos opciones.

UN)

  1. SVN Eliminar todos los archivos.
  2. Ponte al día y haz que funcione.
  3. SVN Agrega todos los archivos.

Pro: se asegurará de que no se guarden archivos adicionales si no están presentes en la última versión.

Con: puede llevar mucho tiempo.

SEGUNDO)

  1. Descargue e instale la nueva versión sobre la anterior.
  2. Hazlo funcionar.
  3. SVN agrega cualquier archivo nuevo.

Pro: Puedes ver qué ha cambiado en los archivos de la herramienta.

Con: puede terminar con desorden. Dependiendo de la sobreescritura de la herramienta puede causar errores.


Puede echar un vistazo a svnbook hablando de sucursales de proveedores . Esto es exactamente lo que intentas lograr

Puede usar svn_load_dirs.pl para reemplazar sus pasos manuales 1-5. svn_load_dirs.pl también hará un seguimiento de los archivos nuevos, movidos o eliminados.


Tengo la misma situación con CMake, donde mantengo la versión binaria de win32 registrada en nuestro directorio de proveedores:

branches/ trunk/ vendor/ cmake/ cmake-2.6.0/ cmake-2.6.1/ cmake-2.6.2/ ...

Luego uso svn: externals para referirme a la versión de CMake que estoy usando. Hace que sea muy fácil probar la actualización a nuevas versiones, y también está claro qué versión de CMake estoy usando.


Todo es correcto, excepto que no necesita los pasos 1 y 5: si el paso 3 falla, revertir los cambios usando la funcionalidad svn revertir.


Si algunos de los proyectos de proveedores también usan Subversion, puede agregar la propiedad svn: externals al directorio principal de Your branch / trunk.

Eche un vistazo al libro de SVN para más detalles.