¿Cómo empezar con svn: externals?

81

Estoy buscando un tutorial sucinto y bien escrito sobre el uso de svn: externals.

Yo ya sé cómo usarlos de forma básica, pero quiero un buen artículo al que pueda enlazar cuando responda preguntas como esta que surgen recientemente:

¿Qué hacer con varios proyectos en función de la misma fuente?

Lo haría yo mismo, pero no los uso con la suficiente frecuencia como para querer sacar el cuello y escribir un tutorial al respecto. Google fue sorprendentemente inútil con este tema.

Joel Coehoorn
fuente

Respuestas:

47

Aquí hay algunas secciones sobre esto en el manual svnbook / TortoiseSVN:

Esta es la página de svnbook sobre svn: externals. Es el recurso más útil sobre el tema.

Este explica cuatro formas de incluir subproyectos en el flujo de trabajo (y en el proceso falta una quinta: enlaces simbólicos).

Y esta última es una página específica de TortoiseSVN sobre cómo importar cosas en un repositorio (no directamente relacionado con svn: externals).

Ole Lynge
fuente
20

En caso de que no quede claro en los enlaces proporcionados anteriormente, la forma en que configura la svn:externalspropiedad que está vinculada a una revisión en particular (fijación), aquí está:

svn propset svn:externals "plugins -r12345 https://svn.example.com/common/plugins" extras

Eso creará un pluginssubdirectorio debajo del extrasdirectorio y lo vinculará a la revisión 12345de la URL de SVN externa https://svn.example.com/common/plugins.

Hay un artículo de Red Bean que sugiere usarlo, propeditya que svn:externalspuede ser un valor de varias líneas. El ejemplo anterior se cambiaría de la siguiente manera para usarlo propedit.

svn propedit svn:externals extras

Luego, agregaría una línea para cada enlace externo siguiendo el mismo formato que se muestra arriba para el valor.

EricD
fuente
0
root/repo1/proj/base/common/log.c
root/repo1/proj/base/common/log.h
root/repo1/proj/base/client

root/repo2/proj/test/base

Como se muestra arriba, queremos copiar 2 archivos y 1 directorio a repo2

Paso 1

directorio: / home / jack / repo2 / proj /

cd /home/jack

Paso 2

svn propset svn:externals "../repo1/proj/base/client proj/base/client" repo2

algo como: ln repo1/proj/base/client repo2/proj/base/client

Paso 3

export SVN_EDITOR=vim

Paso 4

svn propedit svn:externals repo2

vim muestra:

../repo1/proj/base/client proj / base / client

Paso 5: agregue otros dos archivos

../repo1/proj/base/client proj/base/client
../repo1/proj/base/common/log.c proj/base/common/log.c
../repo1/proj/base/common/log.h proj/base/common/log.h
KunMing Xie
fuente