Debo almacenar todos los proyectos en un repositorio o varios?

Actualmente estoy utilizando TortoiseSVN para gestionar un par de proyectos que tengo en la ir en el momento. Cuando me mudé todo en el control de código fuente no estaba muy seguro de cómo todo debe ser diseñado de modo que me acabó poniendo cada proyecto a su propio repositorio.

Estaba pensando que sería una buena idea para mí sólo mover todos ellos en un gran repositorio y los han dividido en carpetas de proyecto? Lo que ocurre con todos los demás a hacer?

Por el momento ninguno de ellos comparten un código común, pero que pueden en el futuro. ¿Sería más fácil de manejar si se en donde todos juntos.

Gracias.

  • Podría alguien con la suficiente reputación cambie el nombre del tema a algo así como «control de código Fuente: Almacén de todos los proyectos en un único repositorio?» Actual título es engañoso.
InformationsquelleAutor Nathan W | 2008-09-24

11 Kommentare

  1. 31

    Depende en una medida de lo que quieres decir por «proyecto».

    Tengo un local general repositorio que contiene bits aleatorios de las cosas que escribo (incluyendo a mi sitio web, ya que es pequeño). Un solo usuario local del repositorio SVN no va a sufrir notables problemas de rendimiento hasta que haya pasado un montón de años escribiendo. Por que el tiempo SVN será más rápido de todos modos. Así que aún tengo a arrepentirse de haber puesto todo en un solo repositorio, aunque algunas de las cosas es totalmente diferente a otros de que lo escribí todo.

    Si un «proyecto» significa «una asignación de la clase», o «las secuencias de comandos que uso para manejar mi TiVo», o «mi progreso en el aprendizaje de un nuevo idioma», luego la creación de una repos por proyecto parece un poco innecesario para mí. Entonces de nuevo, no cuesta nada. Así que supongo que diría que no cambie lo que está haciendo. A menos que usted realmente quiere que la experiencia de re-organización de los repositorios, en cuyo caso hacer cambiar lo que estás haciendo 🙂

    Sin embargo, si por «proyecto» te refieres a un «verdadero» proyecto de software, con acceso al público en el repositorio, entonces yo creo que aparte de repos por proyecto es lo que hace sentido: en parte porque divide las cosas limpiamente y cada proyecto escalas de forma independiente, pero también porque es lo que la gente espera ver.

    Compartir código entre repositorios separados es menos de un problema que se podría pensar, ya que svn tiene la más hermosa «svn:externals» característica. Esto le permite apuntar a un directorio de su repositorio en un directorio en otro repositorio, y comprobar que las cosas automáticamente, junto con sus cosas. A ver, como siempre, el SVN libro para más detalles.

  2. 8

    Podría almacenar en el mismo repositorio. Es una especie de limpia. Además ¿por qué es importante para la integración continua y tal, siempre se puede tirar de una carpeta específica en el repositorio.

    Es también más fácil de administrar cuentas a un repositorio, los registros de acceso de un repositorio etc.

    • En mi CI configuración de la etiqueta construye con el número de revisión que se exporta desde el repositorio. Es muy fácil ir de vuelta y conocer el estado exacto de un proyecto, pero esto requiere de repositorios separados.
  3. 6

    Mi regla de oro es la consolidación de las cosas que se entregan juntos. En otras palabras, si usted puede entregar el proyecto X y proyecto Y por separado, a continuación, ponerlos en diferentes repositorios.

    Sí, a veces esto significa que usted tiene una gran repo para un proyecto que contiene un gran número de componentes, pero la gente puede operar en el sub-árboles de una repo y esto obliga a pensar en el «proyecto completo» cuando cometen cambios en la repo.

  4. 5

    Estoy totalmente de mantener cada proyecto en su propio repositorio, separado de todos los demás. Esto le dará a cada proyecto de su propia historia de la cometa. Deshacer en un proyecto no afectará a otros proyectos.

    • Si usted mantener sus proyectos en diferentes directorios en un único repositorio, cada proyecto todavía tiene su propia historia de la cometa.
    • Deshacer un cambio se puede hacer en casi cualquier nivel de granularidad. Generalmente no hay razón para que sea hecho en el repositorio de nivel. Cambios también pueden acceder a un nivel de directorio. Usted tendrá que lidiar con los directorios (ramas), incluso si usted tiene un proyecto de cada repositorio.
  5. 3

    Si usted trabaja con un montón de otras personas que usted podría considerar si todo el mundo necesita el mismo nivel de acceso a cada proyecto. Creo que es más fácil ceder los derechos de acceso por persona si usted pone cada proyecto en un repositorio separado. ~~~

  6. 0

    La medida en que cada proyecto ha /trunk /etiquetas y /ramas en lo que eres bueno. Adecuada integración continua es el criterio aquí.

  7. 0

    Sí, poner todo en el control de código fuente.

    Si usted está usando SVN, mantener los proyectos en su propio repositorio svn es lento, y se vuelve más lento.

    • Mientras que la Subversión puede ser un poco lento, ciertamente he notado que frenar con el tipo de carga de un proyecto personal sería de forma remota probabilidad de infligir; el agregado de la carga administrativa de los múltiples repositorios sería mucho más molesto.
    • Me he dado cuenta de 1000+ revisiones hacer causa de un minuto o así de procesamiento, por lo que depende de la cantidad de check-ins habrá y por cuánto tiempo el repositorio será de alrededor.
  8. 0

    Si los proyectos son independientes, está bien para mantenerlos en diferentes repositorios. Si comparten componentes, a continuación, ponerlos juntos.

  9. 0

    Para la Subversión, te sugiero poner todo en el mismo repositorio; la sobrecarga administrativa de creación de un nuevo repositorio es demasiado alto para hacer una obviedad, lo que es más probable, no a la versión algo y luego arrepentirse. Subversion proporciona un montón de grano fino, controles de acceso si es necesario restringir el acceso a una parte de su repositorio.

    Como puedo comenzar a migrar mis proyectos, Mercurial, sin embargo, me cambié a la creación de un repositorio por proyecto, debido a que sólo se necesita un «hg init» para crear una nueva en el lugar, y puedo usar el hg bosque extensión de realizar fácilmente las operaciones en anidada de los repositorios. La subversión ha svn:externals, que son algo similar, pero requieren de una mayor carga administrativa.

    • Yo iba a decir eso, pero entonces se me ocurrió que tal vez no todo el mundo utiliza sólo los repositorios locales para sus propias cosas. Si va a configurar una interfaz web, y las restricciones de acceso, y así sucesivamente, para cada repositorio, entonces es más que la ausencia de trabajo. Aunque me imagino que de secuencias de comandos.
    • Sí, eso es lo que quiero decir – repositorios que no son accesible en la red no son muy útiles para mí como yo trabajo de al menos 5 máquinas de todos los días. (Me doy cuenta de que probablemente estoy en la minoría de esa manera).

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea