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

Երեք դասավորություն ծածկում են սովորական դեպքերը, և դրանք տարբերվում են նրանով, թե որտեղ է ապրում աշխատանքային տարածքը և որ մեքենան է կոմպիլյացնում։ Շարունակելուց առաջ գրեք ձեր պատասխանը երկու կետերի վերաբերյալ։

Անվանեք այն մեքենան, որը գործարկում է Xcode-ը

Առաջին դասավորության մեջ ամեն ինչ տեղական է. աշխատանքային պատճենը, ինդեքսը և կառուցումը բոլորը ապրում են ձեր Mac-ում, և ցանցը փոխանցում է միայն պահոցի և կախվածությունների երթևեկությունը։ Երկրորդում նախագիծը մնում է հեռավոր Mac-ում Xcode-ի հետ, այնպես որ ինդեքսավորումը և կոմպիլյացիան տեղի են ունենում ֆայլերի կողքին, մինչ կապը փոխանցում է էկրանի բովանդակությունը և ստեղնահարումները։ Երրորդում խմբագրումը տեղի է ունենում տեղական, և կառուցումը կատարվում է հեռավոր հոսթում բացահայտ աղբյուրի հանձնումից հետո։ Աղյուսակը նշում է, թե դրանցից յուրաքանչյուրն ինչ է տեղափոխում։

ArrangementWhere the source livesWhat crosses the link
Everything localLocal diskRepository and dependency traffic
Remote Xcode, screen sharedRemote diskDisplay frames and input events
Local edit, remote buildBoth, with a handoffSource transfer, then build output

Նախ կարդացեք միջին սյունակը, որովհետև այն որոշում է, թե որտեղ կհայտնվեն խափանումները։ Աշխատահոսքը, որի աղբյուրը հեռավոր է, ձախողվում է, երբ կապը դանդաղ է, մինչդեռ հեռավոր կոմպիլյատորով աշխատահոսքը ձախողվում է, երբ հանձնումը երկիմաստ է։ Միայն երրորդն է ձեզ պատասխանատու դարձնում երկուսի համար։

Հաշվեք ետադարձ ուղևորությունները, ոչ թե մեգաբայթերը

Խմբագրիչը և ինդեքսավորիչը արձակում են շատ փոքր ֆայլային գործողություններ, և յուրաքանչյուրը դառնում է ետադարձ ուղևորություն, երբ ֆայլային համակարգը հեռավոր է։ Դա միացված աշխատանքային տարածքը դարձնում է զգայուն ուշացման նկատմամբ այնպես, ինչպես մեկ մեծ պատճենը զգայուն չէ, և դրա համար էլ ֆայլի փոխանցման ժամանակը չափելը գրեթե ոչինչ չի ասում այն մասին, թե ինչպես է զգացվում աշխատահոսքը։ Հեռավոր ցուցադրությունն ունի հակառակ պրոֆիլը. այն տեղափոխում է շարունակական հոսք և ավելի լավ է տանում թողունակությունը, քան ուշացումը։ Երկուսը մեկ թվով համեմատելը տալիս է ինքնավստահ սխալ պատասխան։

Դասավորություններից ոչ մեկը բնույթով ամենաարագը չէ։ Ճիշտ ընտրությունը կախված է այն աշխատանքից, որն իրականում անում եք, և դրա համար էլ հաջորդ քայլը այդ աշխատանքը փորձելն է, ոչ թե չափանիշը։

Աղբյուրի հանձնումը դարձրեք բացահայտ

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

Հեռավոր կառուցումը նաև պահանջում է, որ հեռավոր հոսթն ունենա ճիշտ գործիքաշղթան և մասնավոր կախվածությունների հավատարմագրերը։ VPN-ը, որը թույլ է տալիս հասնել հոսթին, չի տրամադրում նրան ձեր հաշվի հասանելիությունը և չի տեղադրում Xcode այնտեղ։

Ստուգեք ուղին, նախքան աշխատահոսքին պարտավորվելը

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

xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain

Ամբողջական Xcode տեղադրում չունեցող հոսթը xcodebuild-ից սխալ է վերադարձնում, և դա գործիքաշղթայի խնդիր է, ոչ թե ցանցի։ Մշակողի գրացուցակը ցույց է տալիս, թե որ Xcode-ն է օգտագործելու կառուցումը, և ուղին, որը մատնանշում է միայն հրամանի տողի գործիքներին, նշանակում է, որ հավելվածը տեղադրված չէ։ Պահոցի կարգավիճակի հրամանի ժամանակի չափումը միացված համօգտագործման վրայով ուղղակիորեն բացահայտում է ետադարձ ուղևորության արժեքը, և տեղական գործարկման հետ համեմատությունը տալիս է այն թիվը, որը նշանակություն ունի։ Եթե այդ բացը արդեն տհաճ է, միացված աշխատանքային տարածքի աշխատահոսքը իրական խմբագրիչի ներքո ավելի վատ կլինի։

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

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