Dijeljeni direktorij se montira, editor otvara datoteku, a gradnja i dalje ide na laptopu. Ništa ne prijavljuje grešku i upravo to zbunjuje. Daljinska putanja nije daljinski lanac alata, a editor koji može čitati datoteku kroz montažu rado će na nju pozvati lokalni kompajler. Rješenje je premjestiti radni prostor, a ne samo bajtove.

Montirani direktorij nije radni prostor

Montiranje preko SSH-a ili SMB-a daje vam putanju. Dolaze li kompajler, sistem gradnje i debager s daljinske strane, zavisi od toga gdje ih editor odluči pokrenuti. Mnoge postavke čitaju daljinske datoteke i kompajliraju ih lokalno, pa padnu na zaglavlju koje postoji samo na serveru.

Simptom je suptilan: gradnja uspije s djelimičnim rezultatima ili se slomi na putanji uključivanja koja u editoru izgleda ispravno.

Dokažite koji host odgovara

Povežite se pravom daljinskom sesijom umjesto montažom, zatim pokrenite tri komande samo za čitanje u terminalu koji ta sesija daje. Vodič za SSH u VS Code dokumentuje da terminal u povezanom daljinskom prozoru radi na daljinskom hostu i da ista sesija nosi debagiranje. Zatražite odobrenje za daljinske komponente ako ih organizacija ograničava.

hostname imenuje mašinu na kojoj ste, pwd pokazuje gdje radni prostor zaista živi, a command -v c++ ispisuje kompajler koji bi ljuska pokrenula. Sva tri odgovora treba da opisuju server, a ne laptop.

Oni ne dokazuju da su verzija ili konfiguracija gradnje ispravne. To uporedite s uputstvima samog projekta kao zaseban korak.

Pratite jednu izmjenu kroz gradnju i debagiranje

Napravite malu izmjenu u daljinskom radnom prostoru i sačuvajte je tamo. Pokrenite dokumentovanu gradnju iz istog direktorija i potvrdite da izlaz odražava vašu izmjenu, a ne stariju kopiju negdje drugdje. Zatim pokrenite debager kroz istu daljinsku sesiju, s putanjom do binarnog fajla i radnim direktorijem koji pokazuju u stablo gradnje servera. Poklapanje putanja izvornog koda je važno, jer debager koji vašu izmjenu pripisuje putanji na laptopu debagira drugu datoteku.

Ako cilj debagiranja prijavljuje putanje koje počinju vašim lokalnim matičnim direktorijem, konfiguracija pokretanja još razmišlja lokalno.

Mrežne zavisnosti ostaju na hostu

Dohvatanje paketa, git operacija ili pokretanje testova na hostu gradnje koristi mrežu i vjerodajnice tog hosta, a ne VPN sesiju vašeg laptopa. To što laptop doseže privatno ogledalo paketa ne govori ništa o tome može li server. Ako gradnji treba registar, serveru treba ruta do njega, a to je razgovor o vatrozidu, ne postavka editora.

Isto vrijedi obrnuto za testne aplikacije. Dolaženje do usluge na serveru iz vašeg preglednika zasebna je veza koja traži odobrenu privatnu putanju ili ograničeno prosljeđivanje, a ne otvorenog slušaoca.

Prekinite vezu bez gubitka rada

Sačuvajte i commitajte, ili barem zabilježite radno stablo, prije nego veza padne. Daljinska sesija uređivanja ne obećava da će gradnja koja traje ili nesačuvani bafer preživjeti prekid mreže. Za sve što mora nadživjeti vašu sesiju, koristite projektom podržan tok poslova ili sesija.

Podjela rada tada je jasna: laptop je interfejs, server posjeduje radni prostor i lanac alata, a VPN daje rutu. Premještanje datoteka i premještanje gradnje dvije su odvojene odluke.

Povezani članci