Pregunta

Actualmente estoy usando TortoiseSVN para administrar un par de proyectos que tengo en marcha en este momento. Cuando moví todo por primera vez al control de código fuente, no estaba muy seguro de cómo se debería presentar todo, así que terminé colocando cada proyecto en su propio repositorio.

Me preguntaba si sería una buena idea para mí moverlos todos a un gran repositorio y dividirlos en carpetas de proyectos. ¿Qué hacen los demás?

Por el momento, ninguno de ellos comparte un código común, pero pueden hacerlo en el futuro. ¿Sería más fácil administrar si estuvieran todos juntos?

Gracias.

¿Fue útil?

Solución

Depende en cierta medida de lo que quiere decir con "proyecto".

Tengo un repositorio local general que contiene fragmentos aleatorios de cosas que escribo (incluido mi sitio web, ya que es pequeño). Un repositorio SVN local de un solo usuario no sufrirá problemas notables de rendimiento hasta que haya pasado muchos años escribiendo. Para entonces, SVN será más rápido de todos modos. Así que todavía me arrepiento de haber tirado todo en un repositorio, a pesar de que algunas de las cosas allí no tienen ninguna relación aparte de eso, lo escribí todo.

Si un " proyecto " significa "una tarea de la clase", o "las secuencias de comandos que uso para conducir mi TiVo", o "mi progreso en el aprendizaje de un nuevo idioma", y luego crear un repositorio por proyecto me parece un poco innecesario. Por otra parte, tampoco cuesta nada. Entonces supongo que diría que no cambies lo que estás haciendo. A menos que realmente desee la experiencia de reorganizar los repositorios, en cuyo caso do cambie lo que está haciendo :-)

Sin embargo, si por " proyecto " te refieres a un proyecto de software 'real', con acceso público al repositorio, entonces creo que repositorios separados por proyecto es lo que tiene sentido: en parte porque divide las cosas limpiamente y cada proyecto se escala de forma independiente, pero también porque es lo que la gente esperará ver .

Compartir código entre repositorios separados es un problema menor de lo que podría pensar, ya que svn tiene el bastante encantador " svn: externals " característica. Esto le permite apuntar un directorio de su repositorio a un directorio en otro repositorio, y verificar esas cosas automáticamente junto con sus cosas. Vea, como siempre, el libro SVN para más detalles.

Otros consejos

Los almacenaría en el mismo repositorio. Es un poco más ordenado. Además, ¿por qué sería importante para una integración continua y tal? Siempre puede extraer una carpeta específica del repositorio.

También es más fácil de administrar: cuentas en un repositorio, registros de acceso de un repositorio, etc.

Mi regla de oro es consolidar las cosas que se entregan juntas. En otras palabras, si puede entregar el proyecto X y el proyecto Y por separado, póngalos en repositorios separados.

Sí, a veces esto significa que tiene un gran repositorio para un proyecto que contiene una gran cantidad de componentes, pero las personas pueden operar en subárboles de un repositorio y esto los obliga a pensar en el "proyecto completo". cuando cometen cambios en el repositorio.

Absolutamente mantendría cada proyecto en su propio repositorio, separado de todos los demás. Esto le dará a cada proyecto su propia historia de compromisos. Las reversiones en un proyecto no afectarán a otros proyectos.

Personalmente prefiero cada proyecto en su propio repositorio

Si trabaja con muchas otras personas, podría considerar si todos necesitan el mismo nivel de acceso a cada proyecto. Creo que es más fácil otorgar derechos de acceso por persona si coloca cada proyecto en un repositorio separado. ~~~

Si va con un repositorio separado para cada proyecto, puede usar el Etiqueta externa para referirse a otros repositorios, este código compartido.

Siempre que cada proyecto tenga / trunk / tags y / sucursales, eres bueno. La integración continua adecuada es el criterio aquí.

Sí, pon todo en control de fuente.

Si está utilizando SVN, mantenga los proyectos en su propio repositorio: svn es lento y se vuelve más lento.

Si sus proyectos son independientes, está bien mantenerlos en repositorios separados. Si comparten componentes, póngalos juntos.

Para Subversion, sugeriría poner todo en el mismo repositorio; la sobrecarga administrativa de configurar un nuevo repositorio es demasiado alta para que sea obvio, por lo que es más probable que no versiones algo y te arrepientas más tarde. Subversion proporciona muchos controles de acceso específicos si necesita restringir el acceso a una parte de su repositorio.

Cuando empiezo a migrar mis proyectos a Mercurial, sin embargo, cambié a crear un repositorio por proyecto, porque solo requiere un "hg init". para crear uno nuevo en su lugar, y puedo usar el hg forest extensión para realizar fácilmente operaciones en repositorios anidados. Subversion tiene svn: externos, que son algo similares, pero requieren más gastos administrativos.

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