Trochu bezpečnější přímá editace souborů na vzdáleném serveru

Zde popíšu moje workflow pro editování souborů na serveru, kde hrozí kolize s dalšími programátory.


Zamyšlení

Prvně je dobré se zamyslet, zda toto opravdu chcete podstupovat. Úpravy na vzdáleném serveru jsou problematické sami o sobě, natož pokud na něm pracuje více lidí. Navíc, u takto položené otázky, to skoro vypadá, že se nepoužívá žádné verzování1, že?

Některá IDE2 tento postup umožňují, přičemž někdy podporují i detekci konfliktů. Osobně s tím ale dobrou zkušenost nemám.

Korektní postup samozřejmě je, spravovat vývojářskou část odděleně vč. verzování1 a používat například nějaký script pro publikaci. Pro inspiraci můžete následovat [deploy_script] nebo [gulp-deploy-ftp].

Případně ke zvážení/vyzkoušení – lze také použít postup Bohumila Jahody viz [jecas_ostry_server].

Můj Notepad++ workflow

Ideální postup/program by fungoval tak, že při ukládání by rozpoznal rozdíly a zobrazil porovnání souborů při kterém by šlo změny sloučit. Bohužel, něco takového a 100% funkčního se mi nalézt či zprovoznit nepodařilo.

Nejblíže jsem se k tomuto ideálu přiblížil pomocí programu Notepad++ s rozšířeními [NppFTP][Compare plugin].

Postupuji pak tak, že po provedení změn u sebe, uložím text souboru do schránkystáhnu si vzdálenou verzi3. Ze schránky obnovím svoje změny a pomocí Ctrl+Alt+d vyvolám porovnání změn. Změny sloučím a soubor uložím na vzdálený server.

Zkratky k zapamatování

  • Ctrl+Alt+d= porovnání změn vůči uloženému souboru
  • Alt+Shift+f= fokus do FTP panelu

Jiné možnosti ke zmínění

Šlo by samozřejmě napsat script, který by danou věc zautomatizoval, jen to tolik nepotřebuji. Jinak pro vzdálené připojení existují i další postupy, např. pro VSCode viz K dalšímu zkoumání. Respective, pomocí WSL, VSCode umožňuje vzdálenou editaci nativně, viz [VSCode Native Remote].

K dalšímu zkoumání

  1. [gulp-deploy-ftp] NPM balíček „gulp-deploy-ftp” pro Gulp (překvapivě)
  2. [vinyl-ftp] NPM balíček „vinyl-ftp” pro práci s FTP
  3. [deploy_script] Jednoduchý deploy skript nejen pro web v Silexu
  4. [NppFTP] Rozšíření „NppFTP” pro Notepad++ – umožňující připojování k FTP, FTPS, FTPES a SFTP.
  5. [Compare plugin] Rozšíření „Compare plugin” pro Notepad++ – umožňující porovnávání souborů, případně aktuálně neuložené úpravy.
  6. [jecas_ostry_server] Úprava CSS/JS na ostrém serveru – Idea vývoje na ostrém serveru namapováním lokálních souborů, které chceme měnit
  7. [VSCode Native Remote] Nativní podpora pro vzdálenou editaci ve VSCode
  8. [ftp-simple] ftp-simple - Visual Studio Marketplace
  9. [Remote FS] Remote FS - Visual Studio Marketplace – Working with any file in everywhere like they are in local with vscdoe.
  10. [Remote Development] Remote Development - Visual Studio Marketplace – An extension pack that lets you open any folder in a container, on a remote machine, or in WSL and take advantage of VS Code’s full feature set.
  1. Distribuované verzování, jako například Git 2

  2. Například PhpStorm

  3. Jen pro pořádek, plugin stahuje tyto soubory do %appdata%\Notepad++\plugins\config\NppFTP\Cache