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.
Respostas:
O Vim possui um plug-in embutido chamado netrw, que permite ao Vim editar arquivos remotos. Rsync é um dos protocolos que pode ser usado:
Obviamente, se você tiver acesso SSH à máquina remota e o Vim estiver instalado, pode ser mais simples usar o Vim remotamente. Nano, Emacs e outros editores com interfaces de linha de comando também são opções nesse caso. Porém, dependendo de quão ruim é sua conexão, essa pode não ser uma opção agradável.
Tudo isso dito,
sem um sistema confiável de reversão, como o que o git pode oferecer, você e sua organização imploram por agonia quando cometem os erros inevitáveis que podem muito bem passar despercebidos até que você se esqueça exatamente do que fez.
fonte
Beyond Compare é uma ferramenta diff que pode comparar e mesclar pastas e arquivos; Os servidores FTP também são suportados e podem ser manipulados como uma pasta local. É proprietária, uma licença vitalícia para uma instalação custa 30 USD para a edição padrão (com FTP) ou 60 USD para a edição profissional (com SFTP). É executado no Windows, Mac OS e Linux. Pessoalmente, desenvolvo meu site no meu computador doméstico e carrego as alterações no meu servidor Web quando estou feliz. Eu passo as alterações manualmente com o Beyond Compare, mas isso também pode ser automatizado. Você pode tentar e ver se ele carrega apenas arquivos completos ou pedaços de alterações; Eu não tenho certeza sobre isso.
fonte