Oddaljena gradnja C++ prek VPN: ohranite verigo orodij na gostitelju
Priklop deljene mape ni isto kot oddaljena gradnja. Preverite, kateri gostitelj odgovarja, kateri prevajalnik se izvaja in kje živita razhroščevalnik ter omrežje.
Deljena mapa se priklopi, urejevalnik odpre datoteko, gradnja pa še vedno teče na prenosniku. Nič ne sporoči napake, in prav to zmede. Oddaljena pot ni oddaljena veriga orodij, in urejevalnik, ki zna brati datoteko prek priklopa, bo z veseljem na njej zagnal krajevni prevajalnik. Rešitev je premakniti delovni prostor, ne le bajtov.
Priklopljena mapa ni delovni prostor
Priklop prek SSH ali SMB vam da pot. Ali prevajalnik, sistem za gradnjo in razhroščevalnik prihajajo z oddaljene strani, je odvisno od tega, kje jih urejevalnik odloči izvajati. Številne nastavitve berejo oddaljene datoteke in jih prevedejo krajevno, nato pa se ustavijo na glavi, ki obstaja le na strežniku.
Simptom je subtilen: gradnja uspe z delnimi rezultati ali se zlomi na poti include, ki je v urejevalniku videti pravilna.
Dokažite, kateri gostitelj odgovarja
Povežite se s pravim oddaljenim sejnim okoljem namesto s priklopom in nato v terminalu, ki ga to okolje ponudi, izvedite tri ukaze samo za branje. VS Code vodnik za SSH dokumentira, da terminal v povezanem oddaljenem oknu teče na oddaljenem gostitelju in da isto okolje prenaša razhroščevanje. Če organizacija omejuje oddaljene komponente, najprej pridobite njihovo odobritev.
hostname poimenuje stroj, na katerem ste, pwd pokaže, kje delovni prostor v resnici živi, command -v c++ pa izpiše prevajalnik, ki bi ga lupina zagnala. Vsi trije odgovori naj bi opisovali strežnik, ne prenosnika.
Ne dokazujejo, da sta različica ali konfiguracija gradnje pravilni. To primerjajte z navodili samega projekta kot ločen korak.
Sledite eni spremembi skozi gradnjo in razhroščevanje
Naredite majhno spremembo v oddaljenem delovnem prostoru in jo shranite tam. Zaženite dokumentirano gradnjo iz iste mape in potrdite, da izhod odraža vašo spremembo, ne starejše kopije drugje. Nato zaženite razhroščevalnik po istem oddaljenem sejnem okolju, s potjo do binarne datoteke in delovno mapo, usmerjenima v gradbeno drevo strežnika. Ujemanje poti do izvorne kode je pomembno, ker razhroščevalnik, ki vašo spremembo razreši na pot prenosnika, razhroščuje drugo datoteko.
Če cilj razhroščevanja poroča o poteh, ki se začnejo z vašo krajevno domačo mapo, zagonska konfiguracija še vedno razmišlja krajevno.
Omrežne odvisnosti ostanejo na gostitelju
Pridobivanje paketov, operacija git ali zagon testov na gostitelju gradnje uporablja omrežje in poverilnice tega gostitelja, ne VPN seje vašega prenosnika. To, da prenosnik doseže zasebno zrcalo paketov, ne pove nič o tem, ali ga strežnik zmore. Če gradnja potrebuje register, strežnik potrebuje pot do njega, in to je pogovor o požarnem zidu, ne nastavitev urejevalnika.
Obratno velja tudi za preskusne aplikacije. Doseči storitev na strežniku iz brskalnika je ločena povezava, ki potrebuje odobreno zasebno pot ali omejeno posredovanje, ne odprtega poslušalca.
Prekinite povezavo brez izgube dela
Shranite in naredite commit ali vsaj zabeležite delovno drevo, preden povezava pade. Oddaljena urejevalna seja ne obljublja, da bo tekoča gradnja ali neshranjena medpomnilnik preživela prekinitev omrežja. Za vse, kar mora živeti dlje od vaše seje, uporabite v projektu podprt potek opravil ali sej.
Delitev dela je nato jasna: prenosnik je vmesnik, strežnik ima v lasti delovni prostor in verigo orodij, VPN pa zagotavlja pot. Premikanje datotek in premikanje gradnje sta dve ločeni odločitvi.