2010-03-29 28 views
5

Me gustaría optimizar mi implementación de scp que actualmente copia todos los archivos para copiar solo los archivos que han cambiado desde la última compilación. Creo que debería ser posible con la configuración actual de alguna manera, pero no sé cómo hacer esto.Obteniendo ANT scp solo archivos nuevos/modificados

Tengo el siguiente:

Proyecto/src/bla/bla/< ---- archivos estoy editando (en su mayoría PHP en este caso, algunos activos estáticos)

proyecto/construcción < - ------ Tengo un paso de compilación local que utilizo para copiar los archivos aquí

Tengo una tarea scp ahora que copia todo Project/build out en un servidor remoto cuando lo necesito.

¿Es posible de alguna manera aprovechar este directorio extra de "compilación" para lograr lo que quiero, lo que significa que solo quiero cargar el "diff" entre src/** y build/**. ¿Es posible de alguna manera recuperar esto como un conjunto de archivos en ANT y luego scp eso?

Me doy cuenta de que lo que significa es que si de alguna manera elimino/tropecé con archivos en el servidor en el medio, el script ANT no se daría cuenta, pero para mí esto está bien.

+0

Para aclarar, quiero que básicamente haga lo que hace la tarea de copia normal con la copia incremental. – Artem

Respuesta

13

Se puede decir ant scp sólo copiar los archivos que han sido modificados desde el último empujón usando la etiqueta modified así:

<scp trust="true" sftp="true"... > 
    <fileset dir="${local.dir}"> 
    <modified> 
     <param name="cache.cachefile" value="localdev.cache"/> 
    </modified> 
    </fileset> 
</scp> 

La primera vez que utilice este, enviará todos los archivos y almacenar en caché las marcas de tiempo en el archivo de caché declarado en el param. Después de eso, solo enviará los modificados.

Probado y verificado en modo sftp.

0

Creo que necesita usar rsync en su lugar. Encontré el siguiente article que responde a su pregunta.

En pocas palabras, rsync se reanudará donde lo dejó y debería ser posible hacer un túnel sobre ssh.

Cuestiones relacionadas