¿Dónde debemos colocar las bibliotecas externas en nuestro SVN?

7

Tenemos la siguiente estructura SVN.

  • Proyectos: Nuestro trabajo
  • Clientes: los proyectos para clientes, deben ser diferentes
  • Compartidos: las bibliotecas compartidas que creamos
  • Docs: documentos que explican cómo fluye el desarrollo de software dentro de la empresa (no tiene nada que ver con mi pregunta)

¿Dónde debemos colocar las bibliotecas externas? Digamos de proyectos de código abierto, etc.

    
pregunta Odys 23.11.2011 - 09:37

2 respuestas

7

Algunas personas usan Maven o soluciones similares que descargan bibliotecas desde varios repositorios según sea necesario . Puede ser conveniente, pero luego depende de los repositorios mantenidos por un tercero. La actualización de algunas bibliotecas menos populares puede ser lenta y, por supuesto, la mayoría de las bibliotecas comerciales no están disponibles en los repositorios públicos.

Simplemente hemos colocado bibliotecas de terceros en nuestro propio repositorio bajo /lib/libraryname/tags/1.2.3/ y, usando svn:externals , lleve esas bibliotecas a donde sean necesarias. Puede ser un poco torpe, se requiere algo de trabajo manual para actualizar las bibliotecas, pero al menos su software está totalmente bajo su propio control.

En el sentido técnico, las bibliotecas compartidas son bibliotecas compartidas independientemente de quién las creó (usted o alguien más), por lo que en su estructura las pondría en /company/shared/3rdparty/etc.

    
respondido por el Joonas Pulakka 23.11.2011 - 10:26
1

En lugar de responder esta pregunta directamente, solo te diré algunas ideas de cómo se hace en ruby:

1) en una raíz de proyecto tiene un archivo, que tiene una lista de bibliotecas que le gustaría usar con su versión. como
"popular lib1, versión > 2.0",

"popular lib 2, versión 1.55, tienda en www.aaa.bbb / 1.55.tgz",

"popular lib 3, almacenada en www.xxx.com/1.git, cualquier versión" Entonces

2) la herramienta analiza sus requisitos de versión y encuentra la mejor versión de libs (para que todos los requisitos de la versión coincidan). así que tienes algún tipo de carpeta ./cache que contiene una copia de los archivos descargados.

Así que para c # siempre copiaría bibliotecas enteras en la carpeta raíz del proyecto, como libs3rdparty / con nombre. No me gusta ningún tipo de bibliotecas compartidas por compañías, con un espacio de disco tan bajo que no tiene sentido. Como opción (para reducir el tamaño de SVN), puede crear un archivo install.bat que tome versiones lib de ciertos lugares y agregue libs3rdparty al svnignore.

    
respondido por el ZeusTheTrueGod 23.11.2011 - 14:24

Lea otras preguntas en las etiquetas