J'apporte fréquemment de petites modifications à des fichiers texte assez volumineux via FTP ( fichiers CSS pour le développement Web ) et parce que ma connexion Internet est terriblement lente, c'est un processus très douloureux.
Même si je ne change qu'un seul caractère du fichier, je dois encore m'asseoir et attendre un temps considérable pendant que le fichier entier est re-téléchargé sur le serveur.
Existe-t-il un moyen de modifier des fichiers hébergés à distance sur mon ordinateur local et lorsque j'enregistre le fichier, ne télécharge que les parties du fichier qui ont changé ?
Edit: Je pense que je ne sais pas comment j'utilise mon client FTP pour le moment. Fondamentalement, j'ouvre un fichier distant via SFTP en utilisant WinSCP. WinSCP l'enregistre dans un dossier tmp, lance Sublime Text et je commence à le modifier. Lorsque j'appuie sur Enregistrer, WinSCP télécharge automatiquement le fichier. Je ne sauvegarde jamais le fichier en permanence sur mon ordinateur - tout se fait via le dossier temporaire de WinSCP. C'est pourquoi je recherche une solution qui peut être utilisée de cette manière "hit and run".
Discussion précédente
J'ai déjà posté cette question sur ServerFault où l'utilisation de quelque chose comme git a été suggérée, mais comme je l'ai expliqué:
Avec git ou un outil de versioning similaire, je devrais faire un commit chaque fois que j'enregistre le fichier, non? Même si cela pouvait être fait automatiquement (c'est-à-dire si j'avais une macro qui faisait Ctrl-S dans le fichier de sauvegarde Sublime Text et exécutait une poussée git en même temps), je pourrais faire 50 à 100 minuscules modifications d'un fichier CSS par heure; je finirais sûrement avec un journal de commit spammé? De plus, la solution git est inflexible car elle repose sur le fichier que je modifie faisant partie d'un dépôt git.
La seule solution à laquelle je peux penser jusqu'à présent est une sorte de processus piraté utilisant rsync mais même alors, c'est très compliqué:
- Je télécharge les fichiers dont j'ai besoin sur mon ordinateur (via FTP / rsync / autre).
- J'ouvre un fichier (par exemple) Sublime Text et commence à faire des modifications.
- Un processus d'arrière-plan surveille le dossier pour les modifications de fichiers. Lorsque j'enregistre un fichier, ce processus déclenche instantanément une opération rsync de mon ordinateur vers le serveur, transférant les parties modifiées du fichier.
Cependant, je devrais configurer ou spécifier manuellement le chemin du fichier ou du répertoire distant, sinon le script rsync local ne saura pas où rsync les fichiers, de sorte que cette méthode est encore assez rigide. Cette méthode ne me permettrait pas de parcourir instantanément un fichier aléatoire, de l'ouvrir et de l'enregistrer comme le fait un client FTP.
Il n'y a pas non plus de retour visible comme une barre de progression de téléchargement avec cette méthode.
Réponses:
Vim a un plugin intégré appelé netrw, qui permet à Vim de modifier des fichiers distants. Rsync est l'un des protocoles qu'il peut utiliser:
Bien sûr, si vous avez un accès SSH à la machine distante et que Vim y est installé, il peut être plus simple d'utiliser simplement Vim à distance. Nano, Emacs et d'autres éditeurs avec des interfaces de ligne de commande sont également des options dans ce cas. En fonction de la gravité de votre connexion, cela peut ne pas être une option agréable.
Cela dit,
sans un système de restauration fiable tel que ce que git peut fournir, c'est que vous et votre organisation ne faites que mendier l'agonie lorsque vous faites les inévitables erreurs qui peuvent très bien passer inaperçues jusqu'à ce que vous ayez oublié exactement ce que vous avez fait.
la source
Beyond Compare est un outil de comparaison qui peut comparer et fusionner des dossiers et des fichiers; Les serveurs FTP sont également pris en charge et peuvent être gérés comme un dossier local. Il est propriétaire, une licence à vie pour une installation coûte 30 USD pour l'édition standard (avec FTP) ou 60 USD pour l'édition professionnelle (avec SFTP). Il fonctionne sous Windows, Mac OS et Linux. Personnellement, je développe mon site Web sur mon ordinateur personnel et télécharge les modifications sur mon serveur Web lorsque je suis satisfait. Je passe par les changements à la main avec Beyond Compare mais cela peut aussi être automatisé. Vous pouvez l'essayer et voir s'il ne télécharge que des fichiers complets ou des morceaux de modifications; Je ne suis pas sûre à propos de ça.
la source