2008-10-10 16 views
30

Después de preguntar this question me aconsejaron que no compruebe los binarios en subversión. Mi pregunta es, entonces, ¿qué debo hacer con los dll de terceros que deben estar en la carpeta bin? Necesito poder pagar una copia de trabajo y hacer que funcione como un sitio web con todos los dlls, etc. intactos.SVN y binarios

Respuesta

54

Las respuestas a su otra pregunta sugiero que no incurran en alguna generados archivos a subversión. Las DLL en la carpeta bin a menudo se crean como parte de la aplicación, por lo tanto, deben regenerarse en lugar de almacenarse en subversión.

Si los archivos DLL son DLL de terceros para los que no tiene el código fuente, entonces los almacenaría en subversión. Debería poner todo en subversión necesario para recrear la aplicación. Eso significa su código fuente y bibliotecas o programas de terceros.

+0

Hola, estoy de acuerdo con su respuesta. Sin embargo, he configurado omisiones globales para *. ¡dlls y ahora no puedo enviar nuevos binarios desde Visual Studio a SVN! ¿Alguna idea de cómo puedo importarla a un proyecto existente? – Krunal

11

Siempre reviso los archivos DLL de terceros (en una carpeta 'lib') para que la aplicación pueda compilarse y ejecutarse desde un nuevo proceso de pago. Creo que la regla de "no marque en los binarios" se aplica a los binarios que son generados por el código fuente que se haya registrado.

1

Incluyo las DLL necesarias en un directorio DLL en el proyecto y las hago referencia desde allí (con copia en local). Luego, pueden incluirse en el mismo repositorio/carpeta, o ingresarse usando un svn-external desde una ubicación remota (si se comparten en varios proyectos).

5

Me gusta Ben said. No pongo binarios que van a cambiar a menudo en control de fuente. Pero 3ra parte dll, ya terminaron en una carpeta lib en mi svn también.

5

El hecho de que un archivo sea binario no lo debería hacer. La advertencia debe ser contra el ingreso de objetos derivados en el repositorio. Siempre debería poder construir todos sus objetos derivados nuevamente desde las fuentes. Esto puede significar que necesita tener un binario de terceros en el repositorio.

0

De hecho SVN hace almacena los archivos binarios mucho más eficiente que la CVS, para más información ver el SVN-FAQ

1

Idealmente, un repositorio SVN debería exigir a todos los archivos necesarios para construir el objetivo. De modo que si compraste una computadora nueva, instalaste tu compilador y SVN y luego revisaste el repositorio, podrías construir sin tener que encontrar otras dependencias. Así que las bibliotecas de terceros se colocarán en el repositorio, pero los objetivos no.

La excepción a esto sería si está SVNing las imágenes de instalación. Hacemos esto aquí, pero en un conjunto diferente de repositorios que usan nuestros tipos de producción (los programadores no).

5

Las directrices son simples:

  • Todo lo que se requiere para reconstruir la solución, se debe comprobar en *
  • Cualquier cosa que se genera en el proceso de construcción - tiene que permanecer fuera

-
* Los programas, herramientas, service packs son una excepción obvia a esta regla. Pero tienen que aparecer en una lista en un archivo que está versionado.

1

Si por binarios se entiende archivos ejecutables, la mejor práctica es regenerarlos desde el origen, si la fuente está disponible.Si por binarios quiere decir archivos que no son de texto, puedo decirle que utilizo SVN todo el tiempo para almacenar archivos que no son de texto (imágenes jpg, archivos de Visio, archivos bmp, documentos de MS Word 2003 con imágenes y diagramas, archivos de MS Project y archivos similares. Nunca he tenido ningún problema con la corrupción ni nada por el estilo. Y ES MUY conveniente almacenar y administrar todo en SVN