Pregunta

Antes de comenzar: He pasado mucho tiempo en muchos foros (incluyendo desbordamiento de pila - y sí hay una gran cantidad de SO preguntas sobre la organización de SVN), la búsqueda en Google, y la lectura de documentos (I poseer un par de libros de Subversion). Todavía no he encontrado una buena manera de organizar nuestra base de código en Subversion. Actualmente usamos RCS como nuestro sistema de control de versiones, y todo se almacena en el directorio RCS 1 - feo, lo sé - es por eso que estoy trabajando hacia algo mejor. También he utilizado Subversion mucho, así que sé que es capacidades y cómo funciona. He dudado haciendo esta pregunta durante meses, ya que no es la programación relacionada por completo, pero ya que no he sido capaz de llegar a una solución, ¿qué mejor lugar para hacer mi pregunta!

Lo que complica las cosas en mi cabeza es el término "Proyecto" subversión. Si quiero administrar un proyecto Java en la subversión, esto tiene mucho sentido para mí: todos los archivos de Java que consiguen combinar en un archivo jar se podría considerar un "Proyecto" - todos ellos pertenecen juntos. Sin embargo, en nuestro medio, no veo una manera fácil de definir lo que es un "proyecto". Tenemos más de 4.000 programas, y todos ellos son más o menos independientes entre sí. Muchos de ellos son scripts de shell o los scripts de Perl. Algunos de nuestros scripts de uso genérico "utilidad" o guiones "biblioteca", pero en su mayor parte, todos los objetos de código son indepenant.

Una "Proyecto" en nuestro entorno podría implicar el programa A, B, y C, y el archivo de configuración de AA. Otro proyecto podría utilizar programas en C, D y E, y BB archivo de configuración. Sin embargo, otro proyecto apenas podría estar cambiando AA archivo de configuración, o tal vez el programa B. No hay una forma de clasificar los programas o archivos pertenecen a un grupo. Debido a esto - no tengo idea de cómo organizar nuestro código en la subversión. Podría poner todo en el tronco de un proyecto principal, pero después de comprobar una copia de trabajo significa retirar todos los más de 4.000 elementos.

Para darle un poco de contexto, esto es para un almacén de datos. Se necesitan todos los elementos de código más de 4.000 para hacer la función de almacén. Tal vez un cierto requisito de negocio viene en que requiere cambios de una columna que se accede en unos pocos de los elementos, y otro de los requisitos de negocio requiere cambios en algunos otros elementos (tal vez algunos de la misma desde el otro proyecto).

Tal vez Subversion no es la mejor opción para nosotros, aunque tengo que creer que puede funcionar. Ya tenemos un servidor Subversion para nuestro código web y nuestros programas de Java, y funciona muy bien, ya que son fáciles de definir proyectos. No puedo encontrar la manera de organizar nuestra biblioteca principal código.

Esperamos que algunos de los que tenía sentido ... Gracias de antemano por su sabiduría!

¿Fue útil?

Solución

Es posible mirar las externo propiedad. Se le permite definir que la caja del directorio en el que se adjunta esta propiedad, también lo hará la comprobación otros lugares dentro del repositorio para los subdirectorios de ese directorio.

Así que es posible crear el directorio "real" para cada componente y luego crear directorio independiente para cada proyecto que utilizará los aspectos externos de la caja de componentes necesarios.

Otros consejos

Me gustaría tratar de organizar la estructura de carpetas de los archivos antes de simplemente deshacerse de ellos en un repositorio de subversión.

Creo que su problema radica principalmente en la desorganización de los archivos existentes. Si se puede encontrar una manera de dividir lógicamente su sistema en segmentos, entonces sería más fácil para que la gente sólo para comprobar pedazos de archivos (que sería en agrupaciones lógicas).

Subversion realmente refleja un sistema de archivos, por lo que si no se ve bonita en un sistema de archivos, no se verá muy bien en la subversión.

Si se quiere evitar la reorganización de archivos, tal vez usted puede encontrar un sistema de control de versiones que le permite comprobar in / out cosas basadas en etiquetas, en lugar de dónde se encuentren en el sistema de archivos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top