Дељење пројекта преко мреже не премешта 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

Прво прочитајте средњу колону, јер она одређује где ће се појавити откази. Радни ток чији је извор удаљен отказује када је веза спора, док радни ток са удаљеним компајлером отказује када је предаја двосмислена. Само трећи вас чини одговорним за обоје.

Бројте повратне путеве, а не мегабајте

Уређивач и индексатор издају много малих датотечних операција, а свака постаје повратни пут када је датотечни систем удаљен. Због тога је монтирани радни простор осетљив на кашњење на начин на који једна велика копија није, па мерење времена преноса датотеке готово ништа не говори о томе како се радни ток осећа. Удаљени приказ има супротан профил: преноси непрекидан ток и боље подноси пропусност него кашњење. Поређење двају једним бројем даје самоуверен погрешан одговор.

Ниједан распоред није по природи најбржи. Исправан избор зависи од посла који заиста обављате, зато је следећи корак испробати тај посао, а не референтни тест.

Учините предају извора изричитом

Када обе машине имају радну копију, одлучите која је меродавна и коју је ревизију удаљена изградња користила. Commit је јаснија предаја од два алата који уређују једно монтирано радно стабло, јер commit има идентитет, а монтирање не. Генерисани излаз и подаци индекса такође требају власника, јер се обнављају из извора и не би требало да путују као да су извор. Двосмерно огледало без правила за сукобе није радни ток, то је трка.

Удаљена изградња такође захтева да удаљени хост има исправан ланац алата и акредитиве за приватне зависности. VPN који вам омогућава да достигнете хост не позајмљује му приступ вашем налогу и не инсталира тамо Xcode.

Проверите пут пре него што се обавежете на радни ток

Проверите удаљени хост пре него што око њега изградите посао, затим измерите везу операцијама које ће радни ток заиста извршавати. Команде испод проверавају ланац алата, активни директоријум за програмере и трошак посматрања датотека који удаљене радне просторе чини болним. Последњу команду покрените преко мрежног пута, а не локално.

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

Хост без пуне инсталације Xcode-а враћа грешку из xcodebuild-а, а то је проблем ланца алата, не мреже. Директоријум за програмере показује који ће Xcode изградња користити, а пут који показује само на алате командне линије значи да апликација није инсталирана. Мерење времена команде стања репозиторијума преко монтираног дељења директно открива трошак повратног пута, а поређење са локалним покретањем даје број који је важан. Ако је тај јаз већ непријатан, радни ток са монтираним радним простором биће гори под правим уређивачем.

Запишите који сте распоред изабрали, која машина поседује извор и како функционише предаја. Та белешка претвара следеће увођење или замену лаптопа у задатак подешавања уместо истраге.

Повезани чланци