Intentando get rsync para copyr los files a svn

Estoy tratando de configurar un flujo de trabajo particular, pero tengo problemas para averiguar cómo (o si) rsync funcionará para esto.

Mi configuration está en Mac OS X.

Tengo mi directory SVN. Cuando ejecuto mi script de implementación, los files se mueven a mi server de integración Apache. Realizo mis modificaciones a los files, y luego los he copydo manualmente a SVN.

La razón por la que he hecho esto es porque necesito ver cambios en el browser de inmediato ya que estoy editando html, css y javascript. Pero cada vez lleva más time tratar de copyr manualmente y hacer un seguimiento de esto y quiero automatizarlo.

Lo que quiero hacer es usar rsync para determinar los files que he modificado en el directory web de Apache, y luego copyr esos files solo a SVN.

Tengo un command rsync que he estado probando, pero el problema con el que parece que me estoy encontrando es que dado que las marcas de time de los files implementados son todas más nuevas que las de SVN, rsync quiere copyr todos los files porque los ve. como files más nuevos.

También experimenté con diff, y detecta las diferencias de files. Me imagino que puedo armar un script de shell que pueda usar una combinación de diff, grep y cp para hacer que esto funcione, pero quería ver si rsync podría ser una solución todo en uno.

rsync -avuzn --exclude=web-inf/classes/ --exclude=web-inf/lib/ /var/www/web-inf /usr/local/src/svn/WEB-INF 

Recomiendo tener un pago de subversión directamente en el server web. Debería agregar una directiva Denegar para todos los files denominados .svn , de modo que los usuarios remotos no reconozcan esto como una extracción de subversión.

No dice cómo su script de deployment mueve los files al server de integración y no está totalmente claro si hay más de un equipo involucrado o qué tipo de sistema de files están los files del server de integración. Si la secuencia de commands está haciendo lo correcto, es posible que pueda conservar los times de modificación en los files cuando los files se envían originalmente. Como puede usar rsync para recuperarlos, ¿no puede usar también rsync para enviarlos? A less que eso, scp -p es otra forma de transferir conservando muchos attributes.

Sin embargo, este tipo de flujo de trabajo suena a medida para un sistema de control de versiones distribuidas, como mercurial o git .

Lo que no entiendo aquí es ¿qué estás haciendo exactamente? En general, debes desarrollar en tu propia computadora. Su repository svn debe estar ubicado en su directory de Sitios para que pueda ver el sitio en vivo en su browser a través de localhost. Uso Rails con git de esta misma manera. Mi server de ruby ​​local va a localhost: 3000 y puedo desarrollar y ver constantemente lo que estoy haciendo. Luego, cuando mi encoding llega a un punto decente, me comprometo a git y a implementarlo en mi server de testing. Una vez que el sitio está listo, va a un entorno de producción. Cuando codigo en php / mysql, pruebo en mi propio server apache local y luego directamente ftp a un server de testing o de producción cuando termino.

Así es como deberías estar trabajando. No hay razón para copyr cosas de sus serveres de testings o producción. Y tu sistema de control de versiones debería hacer toda la synchronization. Desarrollar localmente, probar de forma remota y luego implementar en producción. Esa es la mejor manera de hacerlo.

También experimenté con implementaciones automáticas y después de escribir mi propio rsync-script … (fácil de usar pero exigente en la installation, me encontré con DeployIt … Pruébalo …

http://deployit.monavari.de/