template_url template site info get_bloginfo bloginfo blog php svn version-control cvs

template - Control de versiones PHP Web Project



wordpress blog title php (8)

Cada uno de ustedes podría ejecutarlo localmente, o en su propio servidor de desarrollo (o incluso el mismo con un puerto diferente ...).

Tenemos un proyecto PHP que nos gustaría controlar las versiones. En este momento, tres de nosotros estamos trabajando en una versión de desarrollo del proyecto que reside en una carpeta externa a la que están vinculados todos nuestros IDE de Eclipse, y por lo tanto no hay control de versión.

¿Cuál es la forma correcta y la mejor manera de controlar la versión?

Tenemos una configuración de SVN, pero solo necesitamos encontrar una buena manera de registrarnos y salir que nos permita probar en el servidor de desarrollo. ¿Algunas ideas?


Estábamos en una situación similar, y esto es lo que terminamos haciendo:

  • Configure dos ramas: la rama de lanzamiento y desarrollo.
  • Para la rama de desarrollo, incluya un enlace post-commit que implemente el repositorio en el servidor de desarrollo, para que pueda realizar la prueba.
  • Una vez que esté listo, fusiona sus cambios en la rama de publicación. También sugeriría poner un gancho post-commit para la implementación allí.

También puede configurar servidores de desarrollo individuales para cada uno de los miembros del equipo, en sus estaciones de trabajo. Me parece que acelera un poco las cosas, aunque tienes más tiempo de configuración.

Tuvimos que usar un único servidor de desarrollo, porque estábamos usando un CMS patentado y nos topamos con problemas de licencia. Entonces nuestro gancho post-commit fue un simple bot de FTP.


Esto es lo que hacemos:

  • Cada desarrollador tiene una VM configurada como nuestro servidor de integración
  • El servidor de integración tiene espacio para Trunk, cada usuario y algunas ranuras para sucursales
  • El servidor de producción
  • Los ganchos están en Subversion al correo electrónico cuando se realizan confirmaciones

Al comienzo de un proyecto, el usuario crea una sucursal y la verifica en su máquina virtual personal, así como también toma una copia limpia de la base de datos. Ellos hacen su trabajo, comprometiéndose a medida que avanzan.

Una vez que han terminado todo en su propio espacio personal, inician sesión en el servidor de integración y revisan su rama, ejecutan sus pruebas, etc. Cuando todo lo que pasa su rama se fusiona en Troncal.

Trunk se reconstruye, se ejecuta el conjunto completo de pruebas y, si todo está bien, obtiene el gran sello de aprobación, se etiqueta en SVN y se promociona a Producción al final de la noche.

Si en algún momento se realiza un compromiso de otra persona, recibimos un correo electrónico y podemos fusionar esos cambios en nuestras sucursales individuales.


Una posible forma (hay probablemente mejores formas):

Cada uno de ustedes debe tener su propia versión del proyecto.

Tenga una copia local del servidor en su computadora y pruébela allí durante todo el día. Luego, al final de cada día (o cuando sea), fusiona lo que esté listo para probar, y lo prueba en el servidor de desarrollo y lo prueba.


Beanstalk tiene ganchos post-commit incorporados para implementar en servidores de desarrollo, almacenamiento en etapas y producción.


Otra herramienta que puede usar para las compilaciones es TeamCity, que es gratis para 20 configuraciones de compilación (suficiente para la mayoría de las pequeñas empresas / proyectos). De esta forma puede ejecutar sus pruebas y cronogramas.


Una forma de usar la subversión para el desarrollo de PHP es también configurar un repositorio para uno o los tres desarrolladores, y usar este repositorio, más como una herramienta de sincronización, que como un verdadero control de versión.

Tú podrías,

  • Haga un repo

  • Agrega toda tu estructura de documento PHP de tu proyecto

  • Obtenga una copia de este repositorio en el lugar correcto en su servidor de desarrollo

  • Use un enlace svn, que se activa al confirmar

Este gancho, actualizará automáticamente el contenido del servidor de desarrollo, siempre que cualquier miembro del equipo verifique cualquier código.

Hook reside en:

svn_dir / repo_name / hooks / post-commit

Y podría verse así:

/ usr / bin / svn up / path_to / webroot --username svn_user --password svn_pass

Eso actualizará su copia de trabajo en el servidor de desarrollo a la última verificación.


¿Qué hay de algo distribuido? Puede comenzar, por ejemplo, con Mercurial, probar diferentes flujos de trabajo y ver cuál le queda mejor.