Buscando una herramienta para sincronizar automáticamente dos vías SFTP con la carpeta local

Uso OS X para el desarrollo y quiero enviar cambios al servidor de desarrollo en cada ⌘+S.
Cuando reviso una rama diferente, quiero que la carpeta local se actualice en consecuencia.

Así que pensé que necesitaba una solución automática de sincronización bidireccional .

Mi editor de elección es Sublime Text (que es increíble, deberías echarle un vistazo).
Comencé mi búsqueda con el complemento Sublime Text SFTP de Will Bond , pero lo encontré inestable y lento.

Luego ataqué el problema con Panic Transmit .
Es asombrosamente hermoso. Sin embargo, tampoco me ayudó.

Transmit ofrece dos opciones:

  • sincronización bidireccional entre la carpeta local y remota;
  • monte SFTP en el sistema de archivos.

Por desgracia, su sincronización bidireccional es manual y debe invocarse presionando un botón.
(Probablemente podría evitar esto escribiendo un AppleScript inteligente, pero no lo sé).

El montaje de SFTP es excelente; desafortunadamente, tiene grandes desventajas: la búsqueda de archivos es predeciblemente lenta y parece que no hay forma de decirle a Transmit que los archivos han cambiado en el servidor . Debe desmontar y volver a montar para ver los cambios remotos. Esto hace que sea imposible trabajar con las ramas.

Estoy realmente confundido ahora y no tengo ganas de perder un par de horas en una solución incorrecta. Estoy abierto a sugerencias sobre una herramienta para mejorar mi flujo de trabajo.

Esto es lo que encontré hasta ahora. No estoy seguro de que ninguno de ellos pueda ver la carpeta remota en busca de cambios.

Tenga en cuenta que estoy buscando una solución que funcione de inmediato . No quiero una herramienta que no pueda manejar archivos o carpetas nuevos/modificados/eliminados sin jugar con su código fuente.

¿Por qué no usar un buen IDE que pueda ayudarlo a hacer esto?
Secure Shellfishen iOS?

Respuestas (5)

Vieja pregunta, pero aquí está mi respuesta:

Yo uso una herramienta de Unix llamada Unison . Esta es una herramienta de línea de comandos que permite la sincronización bidireccional.

Lo bueno es que es altamente configurable: ignorar ciertos nombres de archivos, directorios, sincronizar múltiples carpetas, qué lado gana en un conflicto, muchas otras cosas.

Lo malo es que no hay que tenerle miedo a la línea de comandos y tanto el servidor como el cliente tienen que tener instalado Unison; ambas instalaciones deben ser de la misma versión y construidas con la misma versión de OCAML.

Pero lo he estado usando varias veces por hora todos los días de trabajo durante el último año y ha sido increíble : es muy rápido, muy fácil de ejecutar desde la línea de comandos.

¿Has considerado usar algo como Git? Alojar los archivos en GitHub o configurar su propio servidor git.

Esto debería ayudar: https://stackoverflow.com/questions/455698/best-visual-client-for-git-on-mac-os-x

Uso Git, sin embargo, no tengo un entorno de ejecución en mi computadora portátil, por lo que para probar cada cambio más pequeño, tengo que hacer un compromiso y empujar. Esto hace que el historial de confirmaciones no tenga sentido y sea algo tedioso, aunque esto es exactamente lo que estoy haciendo ahora, con ST2 y Github para Mac haciendo que la experiencia sea un poco más divertida y menos dolorosa.
Definitivamente echaré un vistazo a estas preguntas, muchas gracias.

El siguiente AppleScript le permite sincronizar una carpeta remota con una carpeta local usando Transmit

https://github.com/lmullen/AppleScript---Transmit---sync-local-directory-to-FTP-directory

Desafortunadamente, parece sincronizar de forma predeterminada la carpeta remota con la local, y lo que quiero es lo contrario: descargar archivos actualizados del servidor a mi computadora.

^ la página de github devuelve 404

Una pregunta muy antigua, pero tal vez mi propia respuesta ayude. También usé SublimeText (creo que todavía lo tengo en alguna parte) porque me gusta la forma en que abre archivos tan rápido, especialmente en las Mac más antiguas. Sin embargo, para un trabajo más serio, un mejor IDE definitivamente se ajustaría mejor a sus requisitos.

Ya que está bien en adquirir software nuevo/diferente, pruebe Panic's Coda. Ya te gustó Transmit, que también es un producto de Panic. Coda se encuentra entre SublimeText y los IDE supersofisticados como, por ejemplo, Eclipse, y puede hacer prácticamente lo que desee: mantener las carpetas sincronizadas entre su computadora local y el servidor remoto, publicar y sincronizar a pedido y, además, mantener su los datos locales también están sincronizados con GitHub, Google Code o cualquier otro sistema de control de versiones popular basado en Git o SVN.

Coda sufrió un poco de rendimiento en el pasado (es decir, en la representación del código en color cuando se desplaza rápidamente), pero las versiones actuales se han renovado por completo y son casi tan rápidas como SublimeText. También está basado en complementos: el complemento de validación de PHP/JavaScript/HTML es imprescindible, ya que las funciones de validación de código interno de Coda no son estelares en comparación. Y, en estos días, puede usar la configuración de su servidor Transmit en Coda y viceversa, así como en cualquier dispositivo iOS que pueda tener, a través de sus aplicaciones inteligentes que sincronizan las configuraciones entre sí.

Esto casi suena como propaganda de Panic... ¡No habría mencionado Coda si no hubieras mencionado Transmit!

Otra opción es Mountain Duck . Definitivamente funciona fuera de la caja. Estaba buscando una utilidad que haga lo que creo que estás buscando. Tengo un servidor web remoto que ejecuta sshd y el servidor de aplicaciones web. También estoy usando Sublime Text para editar los componentes de la aplicación web ubicada en ese servidor. Estaba usando Transmit como tú, y me encontré con el mismo problema: necesitaba ejecutarlo manualmente para realizar la sincronización. No se automatizó fácilmente. Así es como tengo esta configuración con Mountain Duck:

Primero, tengo un "marcador" en la jerga de Mountain Duck. Esto corresponde aproximadamente a la misma información que se coloca en la configuración de Transmit para conectarse al servidor remoto.

Configuración de marcadores

Luego navega al menú de Mountain Duck, encuentra la nueva entrada de marcador y selecciona "Conectar" en el submenú. El directorio remoto especificado en la configuración se abre como una ubicación del Finder que se puede expulsar.

Ubicación del buscador

Luego puedo arrastrar cualquiera de los elementos en esa carpeta que deseo editar a Sublime Text y hacer los cambios que quiero. Cuando presiono guardar, los cambios se sincronizan automáticamente con el directorio montado en el servidor remoto.

Documento remoto en texto sublime

Hasta ahora, esto ha satisfecho mis requisitos para sincronizar los archivos. El servidor de desarrollo que estoy usando, Django, puede detectar que un archivo ha cambiado cuando lo guardo y luego se sincroniza. Luego, el servidor se reinicia automáticamente y puedo ver inmediatamente el cambio actualizado en mi navegador.

Los detalles sobre lo que significan esos íconos en la nueva ventana del Finder en cuanto al estado de sincronización se pueden ver en la documentación .

Su respuesta podría mejorarse con información de apoyo adicional. Edite para agregar más detalles, como citas o documentación, para que otros puedan confirmar que su respuesta es correcta. Puede encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda .
Listo, y gracias por el comentario.