Con frecuencia hago pequeños cambios en archivos de texto bastante grandes a través de FTP ( archivos CSS para desarrollo web ) y debido a que mi conexión a Internet es terriblemente lenta, es un proceso muy doloroso.
Incluso si cambio solo un carácter del archivo, todavía tengo que sentarme y esperar un tiempo considerable mientras todo el archivo se vuelve a cargar en el servidor.
¿Hay alguna forma de editar archivos alojados de forma remota en mi computadora local y cuando guardo el archivo, solo subo las partes del archivo que cambiaron ?
Editar: creo que no tengo claro cómo estoy usando mi cliente FTP en este momento. Básicamente, abro un archivo remoto a través de SFTP usando WinSCP. WinSCP lo guarda en una carpeta tmp, inicia Sublime Text y comienzo a editarlo. Cuando presiono guardar, WinSCP vuelve a cargar el archivo automáticamente. En realidad, nunca estoy guardando el archivo permanentemente en mi computadora; todo se hace a través de la carpeta temporal de WinSCP. Es por eso que estoy buscando una solución que pueda usarse de esta manera de "golpear y correr".
Discusión previa
Anteriormente publiqué esta pregunta en ServerFault donde se sugirió usar algo como git, sin embargo, como lo expliqué:
Con git o una herramienta de control de versiones similar, tendría que hacer una confirmación cada vez que guarde el archivo, ¿verdad? Incluso si eso pudiera hacerse automáticamente (es decir, si tuviera una macro que hiciera Ctrl-S en Sublime Text guardar archivo y ejecutara un git push al mismo tiempo), podría hacer 50 - 100 pequeñas ediciones de un archivo CSS por hora; ¿seguramente terminaría con un registro de confirmación de correo no deseado? Además, la solución git es inflexible, ya que depende del archivo que estoy editando como parte de un repositorio git.
La única solución en la que puedo pensar hasta ahora es algún tipo de proceso pirateado usando rsync, pero aun así, es muy complicado:
- Descargo los archivos que necesito en mi computadora (a través de FTP / rsync / lo que sea).
- Abro un archivo en (por ejemplo) Sublime Text y empiezo a hacer ediciones.
- Un proceso en segundo plano está monitoreando la carpeta en busca de modificaciones en el archivo. Cuando guardo un archivo, ese proceso desencadena instantáneamente una operación rsync desde mi computadora al servidor, transfiriendo las partes cambiadas del archivo.
Sin embargo, necesitaría configurar o especificar manualmente el archivo remoto o las rutas de directorio o de lo contrario el script rsync local no sabrá dónde sincronizar los archivos, por lo que este método sigue siendo bastante inflexible. Este método no me permite buscar instantáneamente un archivo aleatorio, abrirlo y guardarlo como lo hace un cliente FTP.
Tampoco hay comentarios visibles como una barra de progreso de carga con este método.
Respuestas:
Vim tiene un complemento incorporado llamado netrw, que le permite editar archivos remotos. Rsync es uno de los protocolos que puede usar:
Por supuesto, si tiene acceso SSH a la máquina remota y Vim está instalado en ella, puede ser más simple usar Vim de forma remota. Nano, Emacs y otros editores con interfaces de línea de comandos también son opciones en ese caso. Sin embargo, dependiendo de qué tan mala sea su conexión, esta podría no ser una opción agradable.
Todo dicho
sin un sistema de reversión confiable, como lo que git puede proporcionar es que usted y su organización simplemente piden agonía cuando comete los errores inevitables que pueden pasar desapercibidos hasta que haya olvidado exactamente lo que hizo.
fuente
Beyond Compare es una herramienta de diferencias que puede comparar y fusionar carpetas y archivos; Los servidores FTP también son compatibles y se pueden manejar como una carpeta local. Es propietario, una licencia de por vida para una instalación cuesta 30 USD para la edición estándar (con FTP) o 60 USD para la edición profesional (con SFTP). Se ejecuta en Windows, Mac OS y Linux. Personalmente desarrollo mi sitio web en la computadora de mi casa y subo los cambios a mi servidor web cuando estoy contento. Reviso los cambios a mano con Beyond Compare, pero esto también se puede automatizar. Puede probarlo y ver si solo carga archivos completos o fragmentos de cambios; No estoy seguro de eso.
fuente