Բաժինը մոնտավորվում է, խմբագրիչը բացում է ֆայլը, և կառուցումը դեռ ընթանում է նոութբուքի վրա։ Ոչ մի սխալ չի ցուցադրվում, և հենց դա է շփոթեցնում։ Հեռավոր ուղին հեռավոր գործիքաշղթա չէ՝ և խմբագրիչը, որը կարող է ֆայլ կարդալ մոնտավորման միջոցով, հաճույքով տեղական կոմպիլյատորը կկանչի դրա վրա։ Լուծումը աշխատանքային տարածքը տեղափոխելն է, ոչ միայն բայթերը։

Մոնտավորված գրացուցակը աշխատանքային տարածք չէ

SSH-ի կամ SMB-ի միջոցով մոնտավորումը ձեզ ուղի է տալիս։ Արդյոք կոմպիլյատորը, կառուցման համակարգը և վրիպազերծիչը գալիս են հեռավոր կողմից, կախված է նրանից, թե որտեղ է խմբագրիչը որոշում դրանք գործարկել։ Շատ կարգավորումներ կարդում են հեռավոր ֆայլեր ու դրանք տեղական կոմպիլյացնում, ապա ձախողվում են մի վերնագրային ֆայլի վրա, որը գոյություն ունի միայն սերվերում։

Ախտանիշը նուրբ է՝ կառուցումը հաջողվում է մասնակի արդյունքներով, կամ կոտրվում է include-ուղու վրա, որը խմբագրիչում ճիշտ է թվում։

Ապացուցեք, թե որ հոսթն է պատասխանում

Միացեք իրական հեռավոր սեանսով, ոչ թե մոնտավորմամբ, ապա այդ սեանսի տված տերմինալում գործարկեք երեք միայն-կարդալու հրաման։ SSH ուղեցույցը VS Code-ում փաստագրում է, որ միացված հեռավոր պատուհանի տերմինալն աշխատում է հեռավոր հոսթի վրա, և նույն սեանսը կրում է վրիպազերծումը։ Եթե կազմակերպությունը սահմանափակում է հեռավոր բաղադրիչները, նախ դրանց համաձայնություն ստացեք։

hostname անվանում է այն մեքենան, որի վրա եք, pwd ցույց է տալիս, թե որտեղ է իրականում աշխատանքային տարածքը, իսկ command -v c++ տպում է այն կոմպիլյատորը, որը shell-ը կգործարկեր։ Բոլոր երեք պատասխանները պետք է նկարագրեն սերվերը, ոչ նոութբուքը։

Դրանք չեն ապացուցում, որ տարբերակը կամ կառուցման կարգավորումը ճիշտ են։ Համեմատեք դա հենց նախագծի հրահանգների հետ՝ որպես առանձին քայլ։

Հետևեք մեկ փոփոխության կառուցման և վրիպազերծման միջով

Կատարեք փոքր փոփոխություն հեռավոր աշխատանքային տարածքում և պահեք այն այնտեղ։ Գործարկեք փաստագրված կառուցումը նույն գրացուցակից և հաստատեք, որ ելքը արտացոլում է ձեր փոփոխությունը, այլ ոչ թե ավելի հին պատճեն այլ տեղ։ Այնուհետև գործարկեք վրիպազերծիչը նույն հեռավոր սեանսով՝ բինարի ուղին և աշխատանքային գրացուցակը ուղղելով սերվերի կառուցման ծառին։ Աղբյուրի ուղիների համընկնումը կարևոր է, քանի որ վրիպազերծիչը, որը ձեր փոփոխությունը վերագրում է նոութբուքի ուղուն, այլ ֆայլ է վրիպազերծում։

Եթե վրիպազերծման թիրախը հաղորդում է ուղիներ, որոնք սկսվում են ձեր տեղական տնային գրացուցակով, գործարկման կարգավորումը դեռ տեղական է մտածում։

Ցանցային կախվածությունները մնում են հոսթի մոտ

Կառուցման հոսթի վրա սկսված փաթեթի ներբեռնումը, git գործողությունը կամ թեստի գործարկումը օգտագործում է այդ հոսթի ցանցն ու հավատարմագրերը, ոչ թե ձեր նոութբուքի VPN սեանսը։ Այն, որ նոութբուքը հասնում է մասնավոր փաթեթային հայելու, ոչինչ չի ասում այն մասին, թե արդյոք սերվերը կարող է։ Եթե կառուցմանը ռեեստր է պետք, սերվերին դեպի այն ուղի է պետք, և սա անվտանգության պատի քննարկում է, ոչ խմբագրիչի կարգավորում։

Նույնը հակառակ ուղղությամբ ճիշտ է թեստային հավելվածների համար։ Սերվերում գտնվող ծառայությանը ձեր զննարկիչից հասնելը առանձին կապ է, որը պահանջում է հաստատված մասնավոր ուղի կամ սահմանափակ փոխանցում, ոչ բաց լսող։

Անջատվեք առանց աշխատանքը կորցնելու

Պահեք և commit արեք, կամ գոնե գրանցեք աշխատանքային ծառը, նախքան կապի ընկնելը։ Հեռավոր խմբագրման սեանսը չի խոստանում, որ ընթացող կառուցումը կամ չպահված բուֆերը կվերապրեն ցանցի ընդհատումը։ Ամեն ինչի համար, ինչ պետք է ապրի ձեր սեանսից ավելի, օգտագործեք նախագծի աջակցվող աշխատանքի կամ սեանսի հոսքը։

Աշխատանքի բաժանումն այն ժամանակ պարզ է՝ նոութբուքը ինտերֆեյս է, սերվերը տիրապետում է աշխատանքային տարածքին և գործիքաշղթային, իսկ VPN-ը ապահովում է ուղին։ Ֆայլերը տեղափոխելը և կառուցումը տեղափոխելը երկու առանձին որոշում են։

Առնչվող հոդվածներ