Frequentemente faço pequenas alterações em arquivos de texto bastante grandes via FTP ( arquivos CSS para desenvolvimento na web ) e, como minha conexão com a Internet é terrivelmente lenta, é um processo muito doloroso.
Mesmo que eu mude apenas um caractere do arquivo, ainda tenho que esperar um tempo considerável enquanto o arquivo inteiro é carregado novamente no servidor.
Existe alguma maneira de editar arquivos hospedados remotamente no meu computador local e quando eu salvar o arquivo, carregue apenas as partes do arquivo que foram alteradas ?
Edit: Eu acho que não tenho certeza sobre como estou usando meu cliente FTP no momento. Basicamente, abro um arquivo remoto por SFTP usando o WinSCP. O WinSCP o salva em uma pasta tmp, inicia o Sublime Text e eu começo a editá-lo. Quando clico em Salvar, o WinSCP carrega novamente o arquivo automaticamente. Na verdade, nunca estou salvando o arquivo permanentemente no meu computador - tudo é feito através da pasta temporária do WinSCP. É por isso que estou procurando uma solução que possa ser usada dessa maneira "bater e correr".
Discussão anterior
Anteriormente, eu postei essa pergunta no ServerFault, onde foi sugerido o uso de algo como git, no entanto, como expliquei:
Com o git ou uma ferramenta de versão semelhante, eu teria que fazer uma confirmação sempre que salvar o arquivo, certo? Mesmo que isso pudesse ser feito automaticamente (ou seja, se eu tivesse uma macro que fizesse o Ctrl-S no Sublime Text salvar o arquivo e executar um push git ao mesmo tempo), eu poderia fazer de 50 a 100 pequenas edições de um arquivo CSS por hora; certamente acabaria com um log de confirmação com spam? Além disso, a solução git é inflexível, pois depende de qualquer arquivo que estou editando que faz parte de um repositório git.
A única solução que consigo pensar até agora é algum tipo de processo hackeado usando o rsync, mas mesmo assim é muito complicado:
- Faço o download dos arquivos necessários para o meu computador (via FTP / rsync / o que for).
- Abro um arquivo em (por exemplo) Sublime Text e começo a fazer edições.
- Um processo em segundo plano está monitorando a pasta quanto a modificações no arquivo. Quando salvo um arquivo, esse processo dispara instantaneamente uma operação rsync do meu computador para o servidor, transferindo as partes alteradas do arquivo.
No entanto, eu precisaria configurar ou especificar manualmente os caminhos de arquivos ou diretórios remotos, caso contrário, o script rsync local não saberá onde sincronizar novamente os arquivos, para que esse método ainda seja bastante inflexível. Esse método não me permite procurar instantaneamente um arquivo aleatório, abri-lo e salvá-lo como faz um cliente FTP.
Também não há comentários visíveis, como uma barra de progresso do upload com esse método.