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] a [Compare plugin].
Postupuji pak tak, že po provedení změn u sebe, uložím text souboru do schránky a stá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í
- [gulp-deploy-ftp] NPM balíček „gulp-deploy-ftp” pro Gulp (překvapivě)
- [vinyl-ftp] NPM balíček „vinyl-ftp” pro práci s FTP
- [deploy_script] Jednoduchý deploy skript nejen pro web v Silexu
- [NppFTP] Rozšíření „NppFTP” pro Notepad++ – umožňující připojování k FTP, FTPS, FTPES a SFTP.
- [Compare plugin] Rozšíření „Compare plugin” pro Notepad++ – umožňující porovnávání souborů, případně aktuálně neuložené úpravy.
- [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
- [VSCode Native Remote] Nativní podpora pro vzdálenou editaci ve VSCode
- [ftp-simple] ftp-simple - Visual Studio Marketplace
- [Remote FS] Remote FS - Visual Studio Marketplace – Working with any file in everywhere like they are in local with vscdoe.
- [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.