Üdv!
PHP web development-re használt IntelliJ IDEA-t szeretném koppra lecserélni open-source szoftverekkel, Linux oprendszeren. Az editor részére bőven elég VSCode, vagy Vim, ezzel nincs gond, MySQL-re DBeaver, ezek pipálva. Viszont a deployment feature-je nagyon szofisztikált és nehezen találok megfelelő alternatívát.
- A workflow-om IDEA-ban:
- Külön Git branch-ben megvalósítom amit kell
- IDEA Git log-ban kijelölöm a teljes branch-et, pontosabban az azon belül módosult fájlokat
- Deployment -> Sync with FTP server * A branch-ben módosult fájlokat feltöltés előtt össze tudom hasonlítani a szerveren lévő verziókkal
- Ha valami miatt a szerveren van egy módosítás, amit a lokális fájlokban nincs jelen, akkor inplace tudom alakítani a kódot
A feltöltő felület így néz ki, csak nem könyvtárakat hasonlítok össze, hanem a branch-ben változott fájlokat: https://www.jetbrains.com/help/idea/comparing-deployed-files-and-folder…
Biztos vagyok benne, hogy ennél lenne jobb workflow is, de per pill ez működik. A kérdésem az, hogy miként tudom ezt megvalósítani egyéb software-ekkel?
Odáig eljutottam, hogy Linux-ban az FTP szerverhez úgy tudok csatlakozni, hogy az egy ugyanolyan könyvtárként jelenik meg a gépemen, mint bármely másik (gio mount ftp://.../), tehát parancssorból is elérem, így tudok rá script-et írni. Az is megvalósítható, hogy a branch-ben változott fájlokat összehasonlítsam a szerverrel:
for f in `git diff --name-only master...`; do
remote_f=/run/user/1000/gvfs/ftp.../$f
if ! ( diff -rq $remote_f $f ); then
code --wait --diff $remote_f $f
fi
done
Ez végigmegy a branch-ben változott fájlokon és összehasonlítja őket a szerveren levővel, inplace tudom módosítani a fájlokat. Már majdnem tökéletes, viszont valamikor csak ellenőrizni akarom, hogy az szerveren lévő fájlok nem-e újabbak, mint a helyiek, ez esetben felesleges a diff, csak ki szeretném jelölni, hogy fel akarom őket küldeni. Erre egy grafikus összehasonlító program (pl. Meld) megfelelne, viszont azok egyikénél se találtam olyan lehetőséget, hogy csak a megadott fájlokat hasonlítsa össze; vagy két fájlt, vagy két könyvtárat tudok megadni paraméterként, de nincs rá lehetőség, hogy egy fájllistát (a branch fájljait) hasonlítsa össze.
Tudtok erre megoldást?
Részben kapcsolódó kérdés
Mostanában ismertem meg a `gio mount`-ot és nagyon rugalmas megoldásnak érzem, hogy parancssorról is elérhető módon tudok kapcsolódni FTP-hez, SAMBA-hoz, egyéb cloud cuccokhoz, valamint hogy ezeket a könyvtárakat ugyan úgy tudom használni, mint bármely másikat. Annyi hátrányát látom csak, hogy
- Kicsit macerás az elérési útvonal (/run/user/1000/gvfs/...), bár ez symlink-el megoldható, de úgy tűnik, mintha nem kifejezetten terminálos használatra tervezték volna
- A GVFS lassabbnak tűnik, mint a natív FTP kapcsolat (Midnight Commander-ben tesztelve)
Vannak már modernebb alternatívái, vagy okés így, ahogy használom? Vagy terminálból hogy érdemes remote server-hez kapcsolódni?