2009-08-31 8 views

Respuesta

22

Sí, es posible con svn 1.6. Es documented en la versión de construcción nocturna del libro svn.

Pero a pesar de que los archivos externos funcionan, solo debe hacerlo con archivos de texto (por ahora) porque los archivos binarios won't work correctly como archivo externo.

+3

el problema con los archivos binarios (http://subversion.tigris.org/issues/show_bug.cgi?id=3368) es – sdu

+5

fijo, uno debe tener en cuenta, que los archivos externos solo se pueden incluir desde el mismo repositorio que el carpeta que contiene la definición externa – Janosch

+0

Janosch: eso no es verdad. los archivos-externos pueden provenir de cualquier repositorio. – Stefan

1

No he podido encontrar un buen ejemplo sobre cómo crear un archivo svn externo. Así que estoy dando un ejemplo aquí, así que puede ser útil para otros.

El formato es

svn propset svn:externals "<local file> <remote svn file>" <local dir> 

Por ejemplo, siguiente comando

svn propset svn:externals "my.cfg https://myserver/my/svn/location/my_sample_file.cfg.template" my_folder 

va a crear el archivo https://myserver/my/svn/location/my_sample_file.cfg.templatemy_folder bajo como my.cfg. Aquí, obviamente, supongo que ya tiene la carpeta my_folder en su directorio actual que está bajo svn.

+1

Extraño, los archivos externos de archivos de reclamaciones de SVN no son posibles en todos los repositorios. – 0xC0000022L

+0

Se prefiere el chorro de respuesta de Nikita Bosik, ya que permite rutas relativas. – gerardw

1

Para SVN 1.9.4 La sintaxis es como la de una carpeta:

svn propset svn:externals <remote file> <local file> 

Por ejemplo, esto creará archivo local.txt en el directorio actual referencia a file.txt:

svn propset svn:externals ^/trunk/path/to/file.txt local.txt 
1

Como se mencionó en el primer respuesta, SVN Externals están documentados en Chapter 3 of the SVN Book, y aquí se muestran bastantes ejemplos de sintaxis.

Además, se da esta nota:

"Debido a que la propiedad svn: externos tiene un valor de varias líneas, se recomienda encarecidamente que utilice svn propedit en lugar de propset SVN."

En mi experiencia probando Tortoise SVN v1.9.6 y svn.exe v1.9.5, los resultados están documentados.

  • Llevar en una carpeta externa con todos sus archivos de Works.
  • Trayendo en un solo archivo del mismo repo funciona.
  • Trayendo un archivo solo de un repo diferente falla y esta limitación está documentada en el libro SVN.

Esto lleva a una solución torpe. Si controla ambos repositorios, puede clonar un archivo individual en su propia carpeta en el repositorio de origen (por Externos de un único archivo DENTRO de un repositorio), y luego lo Externa a través de los bordes de repos en el repositorio de destino al traer toda su carpeta, que contiene solo un archivo.

Los documentos para hacer esto con el cliente Tortoise SVN son on tortoisesvn.net.

Cuestiones relacionadas