Cómo beneficiarse de SVN en el desarrollo web

Actualmente estoy administrando el desarrollo de dos aplicaciones web diferentes, de las cuales una se lanzará en testings beta antes del domingo.

Tengo experiencia previa en el uso de SVN, después de jugar algunas horas con TortoiseSVN localmente en una máquina con XP, pero nunca me gustó mucho ser honesto.

Sin embargo, parece que es hora de replantear SVN y realmente intentar darle una oportunidad honesta. Por lo less, dormiría mucho mejor si sé que las copys de security versionadas de cada file están disponibles y que es fácil deshacer los cambios en las aplicaciones web cada vez que algo golpea al admirador. Especialmente a medida que la aplicación crece.

Actualmente trabajo exclusivamente con PHP en Eclipse y despliego todos los files para el entorno beta a través de FTP.

He leído la mayoría de las publicaciones aquí sobre el uso de Eclipse con complementos SVN, pero realmente no entiendo cómo se vería prácticamente el flujo de trabajo cuando se utiliza SVN.

¿Me logging todas las mañanas en mi repository, hago lo que mejor hago, y al final del día, ¿realizo todos los cambios?

¿Cómo se mantendría la synchronization entre la estructura de files local, el repository SVN y múltiples entornos (env medio, testings env, etc.)?

¡Cuéntame cómo se ve tu flujo de trabajo cuando usas SVN!

Estos son mis pasos con SVN por lo que hago:

  1. Branch para trabajar en bug / feature -> Cuando empiezo a trabajar en un error o característica, creo una nueva twig que toma la revisión principal del código para que esté en mi propio sandbox.

  2. Cuando soluciono el error o finalizo la function, entonces vuelve el cambio a la twig principal y se fusiona en la solución para que se convierta en parte del próximo código que se inserta en dev clean o test. Si bien esto no es exactamente simple, no es tan doloroso como uno pueda temer.

Periódicamente, hay otras cosas que hacer:

  1. Limpiar las sucursales antiguas -> A medida que se completan las características y errores, a veces vale la pena volver atrás y podar el trabajo realizado para que la carpeta no se vuelva enorme en el browser Repo.

  2. Actualizar el código en mi casilla -> A veces pasaré un poco de time entre las características y los errores, aunque me gustaría mantener el código en mi máquina actualizado lo más posible.

Puede comenzar revisando el libro en línea gratuito:

  • Control de versiones con Subversion publicado por O'Reilly Media

Los capítulos 1 y 2 pasan por los conceptos fundamentales y el uso básico de Subversion. Luego, los capítulos restantes exploran temas más avanzados.

Hmm,

Si menciono la pequeña aplicación en la que estoy trabajando actualmente, dashy: http://www.mirios.com.au/dashy , maneja lo que le preocupa desde el lado de deployment / configuration (revertir cambios, manejo configuration de múltiples entornos: dev / staging / live, etc.) y solo es adecuado para Windows + SVN por el momento. (Empezar con esto, sin embargo, será un poco complicado, y la documentation no es particularmente completa, aunque da una idea).

En cuanto a cómo usar SVN en general, bueno, tienes un server de compilation, y usas un sistema de CI para comstackciones automatizadas, luego te comprometes con tu server de CI (utilizamos CruiseControl.NET, Hudson también podría hacerlo). Además de esto, generalmente se actualiza por la mañana, para verificar si alguien en el equipo realizó cambios relevantes, y usa twigs y tags cuando corresponde.

Es algo complicado, (pero no realmente) y una vez que empiezas y tienes todo instalado, la vida debería ser bastante buena (tanto si usas dashy como si no).