Ndërtim C++ në distancë përmes VPN: mbajeni zinxhirin e mjeteve në host
Montimi i ndarjes nuk është e njëjta gjë me ndërtimin në distancë. Kontrolloni cili host përgjigjet, cili përpilues ekzekutohet dhe ku jetojnë korrigjuesi dhe rrjeti.
Ndarja montohet, redaktori hap skedarin, dhe ndërtimi vazhdon të ekzekutohet në laptop. Asgjë nuk jep gabim, dhe pikërisht kjo e bën të ngatërruar. Një rrugë në distancë nuk është zinxhir mjetesh në distancë, dhe një redaktor që mund të lexojë një skedar përmes një montimi do të thërrasë me kënaqësi përpiluesin lokal mbi të. Zgjidhja është të zhvendoset hapësira e punës, jo vetëm bajtët.
Një drejtori e montuar nuk është hapësirë pune
Montimi përmes SSH ose SMB ju jep një rrugë. Nëse përpiluesi, sistemi i ndërtimit dhe korrigjuesi vijnë nga ana e largët varet nga vendi ku redaktori vendos t'i ekzekutojë. Shumë konfigurime lexojnë skedarë në distancë dhe i përpilojnë lokalisht, pastaj dështojnë në një skedar kreu që ekziston vetëm në server.
Simptoma është e hollë: ndërtimi ka sukses me rezultate të pjesshme, ose thyhet në një rrugë include që në redaktor duket e saktë.
Provoni cili host përgjigjet
Lidhuni me një sesion të vërtetë në distancë në vend të një montimi, pastaj ekzekutoni tre komanda vetëm-lexim në terminalin që ju jep ai sesion. Udhëzuesi SSH i VS Code dokumenton që një terminal në një dritare të largët të lidhur ekzekutohet në hostin e largët dhe që i njëjti sesion mbart korrigjimin. Kërkoni fillimisht miratimin për komponentët e largët nëse organizata i kufizon.
hostname emërton makinën ku jeni, pwd tregon ku jeton vërtet hapësira e punës dhe command -v c++ shtyp përpiluesin që shell-i do të ekzekutonte. Të tre përgjigjet duhet të përshkruajnë serverin, jo laptopin.
Ato nuk provojnë që versioni ose konfigurimi i ndërtimit është i saktë. Krahasojeni atë me udhëzimet e vetë projektit si hap më vete.
Ndiqni një ndryshim përmes ndërtimit dhe korrigjimit
Bëni një ndryshim të vogël në hapësirën e punës në distancë dhe ruajeni atje. Ekzekutoni ndërtimin e dokumentuar nga e njëjta drejtori dhe konfirmoni që dalja pasqyron ndryshimin tuaj dhe jo një kopje më të vjetër diku tjetër. Pastaj nisni korrigjuesin përmes të njëjtit sesion në distancë, me rrugën e binarit dhe drejtorinë e punës që tregojnë në pemën e ndërtimit të serverit. Përputhja e rrugëve të burimit ka rëndësi, sepse një korrigjues që e zgjidh ndryshimin tuaj në një rrugë të laptopit po korrigjon një skedar tjetër.
Nëse objektivi i korrigjimit raporton rrugë që fillojnë me drejtorinë tuaj shtëpiake lokale, konfigurimi i nisjes vazhdon të mendojë lokalisht.
Varësitë e rrjetit mbeten në host
Marrja e paketave, një operacion git ose një ekzekutim testesh i nisur në hostin e ndërtimit përdor rrjetin dhe kredencialet e atij host, jo sesionin VPN të laptopit tuaj. Fakti që laptopi arrin një pasqyrë private paketash nuk thotë asgjë për atë nëse serveri mundet. Nëse ndërtimi ka nevojë për një regjistër, serveri ka nevojë për një rrugë drejt tij, dhe kjo është bisedë për firewall, jo një cilësim i redaktorit.
E kundërta vlen gjithashtu për aplikacionet e provës. Të arrihet një shërbim në server nga shfletuesi juaj është një lidhje më vete që kërkon një rrugë private të miratuar ose një përcjellje të kufizuar, jo një dëgjues të hapur.
Shkëputuni pa humbur punën
Ruani dhe bëni commit, ose të paktën regjistroni pemën e punës, përpara se lidhja të bjerë. Një sesion redaktimi në distancë nuk premton që një ndërtim në vazhdim ose një bufer i paruajtur do t'i mbijetojë një ndërprerjeje rrjeti. Për gjithçka që duhet të jetojë më gjatë se sesioni juaj, përdorni rrjedhën e punës ose të sesioneve të mbështetur nga projekti.
Ndarja e punës atëherë është e qartë: laptopi është ndërfaqe, serveri zotëron hapësirën e punës dhe zinxhirin e mjeteve, dhe VPN-i siguron rrugën. Zhvendosja e skedarëve dhe zhvendosja e ndërtimit janë dy vendime të ndara.