2009-09-02 13 views
5

Los sistemas de control de versiones son obviamente importantes en proyectos de desarrollo, pero su uso en proyectos de desarrollo web parece ser más complejo, con el requisito de tener un servidor web para ejecutar todas las aplicaciones web menos las más simples.¿Cómo implementar mejor Control de versiones para desarrollo web?

Con esto en mente, he mirado alrededor y descubrió algunos métodos diferentes de utilizar el control de versiones en proyectos de desarrollo web:

  1. proporcionar a cada desarrollador con una máquina virtual que es una réplica del servidor de desarrollo y haga que el desarrollador ejecute su copia de trabajo de la aplicación en la máquina virtual.

  2. Haga que cada desarrollador use un subdominio en el servidor de desarrollo, p. john.project.com y revisa su copia de trabajo de la aplicación en los directorios a los que apunta el subdominio.

  3. Utilice el sistema de control de versiones para verificar el código, realice un cambio, confirme el código y luego verifíquelo en el servidor de desarrollo (que apunta al encabezado del repositorio).

veo un inconveniente de 1 siendo el tiempo añadido necesario para crear las máquinas virtuales y asegurarse de que las máquinas virtuales se mantienen insync con el servidor de desarrollo (también la necesidad (?) Para cambiar continuamente el anfitrión desarrolladores archivo para apuntar a la máquina virtual, no al servidor de desarrollo).

Veo que posiblemente 2 sea un problema si se usan URL absolutas dentro del sitio a menos que haya una manera fácil de actualizar la configuración para usar los nuevos subdominios también.

3 es el más fácil de configurar pero es bastante primitivo y presumiblemente será bastante tedioso para un desarrollador seguir comprobando el código después de cada cambio de hora.

¿Cómo han controlado los usuarios de stackoverflow el control de versiones con proyectos de desarrollo web y qué método/flujo de trabajo fue más efectivo?

También incluya métodos adicionales que no había pensado/leído.

Respuesta

0

Parece que ha omitido otra opción, que para la mayoría de los desarrolladores de ASP.NET .NET es común.

4) Extraiga el código fuente del repositorio, desarrolle el control local de nuevo. Esto es realmente lo mismo que el enfoque VM, simplemente no hay VM. En ASP.NET, usted usa IIS localmente o el servidor de desarrollo de Visual Studio.

+0

Supongo que es porque la situación en la que estaba pensando era en las máquinas LAMP + no LAMP para desarrolladores. Pero 4) es probablemente el mejor para los desarrolladores de ASP.NET. –

+0

Pensé que podría haber sido, aunque no agregó ninguna etiqueta LAMP a la pregunta, así que le di mi respuesta para que esté completa. Para ASP.NET, solo he visto 1, 2 o 4 (mi 4). Las máquinas virtuales son útiles si deseas jugar con las versiones Beta de Visual Studio sin arruinar tu máquina principal y, a veces, la política corporativa exige un enfoque similar a 2. Sigue siendo una pregunta interesante, así que +1 de mí. – RichardOD

0

De lo que está hablando no es solo el control de versiones sino también un servidor de compilación.

Depende de qué idioma en que se escriba, si se trata de java que climatizador con SVN/Github, si se trata de C# y luego Team Foundation Server o CruiseControl.Net con SVN/GitHub

mayoría de los sistemas de control de versiones le permitirá para bifurcar y fusionar y luego usar su Servidor de compilación, puede implementarlo en el servidor web que desee. Eso debería resolver sus subdominios de desarrollador por separado.

2

Pruebe una combinación de 1 + 3.

# 1: Proporcione a cada desarrollador una máquina virtual que sea una réplica del servidor de desarrollo y haga que el desarrollador ejecute su copia de trabajo de la aplicación en la máquina virtual.

No me gustan las máquinas virtuales, quizás solo porque estoy ejecutando el mismo sistema operativo en el que se ejecuta el servidor. Actualizar y mantenerlo sincronizado es una tarea que puedo hacer sola (una vez por semana: "simplemente instale el paquete XYZ"). Cada mes, más o menos, puede congelar una VM para realizar una copia de seguridad (o para otorgarla a nuevos desarrolladores).

Es el mejor método para el desarrollador. No tiene que esperar a que suceda un compromiso/despliegue. Cambia una línea de código, guarda el archivo, presiona F5 en el navegador, listo. Para una mejor eficiencia, ese es el camino a seguir.

# 3: Utilice el sistema de control de versiones para verificar el código, realice un cambio, confirme el código y luego verifíquelo en el servidor de desarrollo (que apunta al encabezado del repositorio).

Realmente recomendaría configurar un servidor de transición/desarrollo. Cada vez que alguien se compromete con el Control de versiones, el servidor debería obtener automáticamente la versión más nueva y reiniciar el servidor web. De esta forma, otras personas pueden echar un vistazo al producto en funcionamiento y dar su opinión.

+0

Sí, tener en mente un servidor de desarrollo/almacenamiento intermedio adicional además de tener desarrolladores usar máquinas virtuales. –

Cuestiones relacionadas