Dijeljeni se direktorij montira, editor otvara datoteku, a izgradnja i dalje ide na prijenosniku. 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 prevoditelj. 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 prevoditelj, sustav izgradnje i debager s daljinske strane, ovisi o tome gdje ih editor odluči pokrenuti. Mnoge postavke čitaju daljinske datoteke i prevode ih lokalno, pa padnu na zaglavlju koje postoji samo na poslužitelju.

Simptom je suptilan: izgradnja uspije s djelomič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 naredbe samo za čitanje u terminalu koji ta sesija daje. VS Codeov vodič za SSH dokumentira da terminal u povezanom daljinskom prozoru radi na daljinskom hostu i da ista sesija nosi otklanjanje pogrešaka. Zatražite odobrenje za daljinske komponente ako ih organizacija ograničava.

hostname imenuje stroj na kojem ste, pwd pokazuje gdje radni prostor zaista živi, a command -v c++ ispisuje prevoditelj koji bi ljuska pokrenula. Sva tri odgovora trebala bi opisivati poslužitelj, ne prijenosnik.

Oni ne dokazuju da su verzija ili konfiguracija izgradnje ispravne. To usporedite s uputama samog projekta kao zaseban korak.

Pratite jednu izmjenu kroz izgradnju i otklanjanje pogrešaka

Napravite malu izmjenu u daljinskom radnom prostoru i spremite je tamo. Pokrenite dokumentiranu izgradnju 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 binarne datoteke i radnim direktorijem koji pokazuju u stablo izgradnje poslužitelja. Podudaranje putanja izvornog koda je važno, jer debager koji vašu izmjenu pripisuje putanji na prijenosniku debagira drugu datoteku.

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

Mrežne ovisnosti ostaju na hostu

Dohvaćanje paketa, git operacija ili pokretanje testova na hostu izgradnje koristi mrežu i vjerodajnice tog hosta, a ne VPN sesiju vašeg prijenosnika. To što prijenosnik doseže privatno zrcalo paketa ne govori ništa o tome može li poslužitelj. Ako izgradnji treba registar, poslužitelju treba ruta do njega, a to je razgovor o vatrozidu, ne postavka editora.

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

Prekinite vezu bez gubitka rada

Spremite i commitajte, ili barem zabilježite radno stablo, prije nego veza padne. Daljinska sesija uređivanja ne obećava da će izgradnja koja traje ili nespremljeni međuspremnik preživjeti prekid mreže. Za sve što mora nadživjeti vašu sesiju, koristite projektom podržan tijek poslova ili sesija.

Podjela rada tada je jasna: prijenosnik je sučelje, poslužitelj posjeduje radni prostor i lanac alata, a VPN daje rutu. Premještanje datoteka i premještanje izgradnje dvije su odvojene odluke.

Povezani članci