Nuotolinis Mac skirtas Xcode: vietinis rinkimas, nuotolinis rinkimas ar ekrano bendrinimas?
Primontuota darbo erdvė ir nuotolinis Xcode perkelia skirtingus duomenis. Nuspręskite, kur gyvena šaltinis, indeksas ir rinkimas, tada išmatuokite keliones pirmyn ir atgal.
Bendrinti projektą tinkle nereiškia perkelti Xcode, nes programa toliau veikia jūsų Mac kompiuteryje ir toliau prašo serverio projekto duomenų. Xcode paleidimas nuotoliniame Mac kompiuteryje ir jo ekrano stebėjimas yra kitokia tvarka, kai programa ir jos failai lieka kartu, o ryšys perduoda tik vaizdą ir jūsų įvestį. Nusprendus, kurios iš jų norite, prieš ką nors konfigūruojant, išsisprendžia didžioji dalis vėlesnės painiavos.
Įprastus atvejus apima trys tvarkos, ir jos skiriasi tuo, kur yra darbo erdvė ir kuri mašina kompiliuoja. Prieš tęsdami užsirašykite atsakymą į abu klausimus.
Įvardykite mašiną, kuri paleidžia Xcode
Pirmoje tvarkoje viskas vietinė: darbinė kopija, indeksas ir rinkimas yra jūsų Mac kompiuteryje, o tinklas perduoda tik saugyklos ir priklausomybių srautą. Antroje projektas lieka nuotoliniame Mac kompiuteryje su Xcode, todėl indeksavimas ir kompiliavimas vyksta prie failų, o ryšys perduoda ekrano turinį ir klavišų paspaudimus. Trečioje redagavimas vyksta vietoje, o rinkimas paleidžiamas nuotoliniame hoste po aiškaus šaltinio perdavimo. Lentelė įvardija, ką perkelia kiekviena jų.
| Arrangement | Where the source lives | What crosses the link |
|---|---|---|
| Everything local | Local disk | Repository and dependency traffic |
| Remote Xcode, screen shared | Remote disk | Display frames and input events |
| Local edit, remote build | Both, with a handoff | Source transfer, then build output |
Pirmiausia skaitykite vidurinį stulpelį, nes jis nusprendžia, kur pasirodys gedimai. Darbo eiga, kurios šaltinis nuotolinis, žlunga, kai ryšys lėtas, o darbo eiga su nuotoliniu kompiliatoriumi žlunga, kai perdavimas dviprasmiškas. Tik trečioji daro jus atsakingus už abu.
Skaičiuokite keliones pirmyn ir atgal, o ne megabaitus
Redaktorius ir indeksuotojas siunčia daug mažų failų operacijų, ir kiekviena jų tampa kelione pirmyn ir atgal, kai failų sistema nuotolinė. Todėl primontuota darbo erdvė tampa jautri delsimui taip, kaip viena didelė kopija nėra, ir dėl to failo perdavimo laiko matavimas beveik nieko nepasako apie tai, kaip jaučiasi darbo eiga. Nuotolinis vaizdas turi priešingą profilį: jis perduoda nuolatinį srautą ir geriau toleruoja pralaidumą nei delsimą. Abiejų palyginimas vienu skaičiumi duoda užtikrintą klaidingą atsakymą.
Nė viena tvarka iš prigimties nėra greičiausia. Teisingas pasirinkimas priklauso nuo darbo, kurį iš tikrųjų dirbate, todėl kitas žingsnis yra išbandyti tą darbą, o ne etaloną.
Padarykite šaltinio perdavimą aiškų
Kai abi mašinos turi darbinę kopiją, nuspręskite, kuri yra įgaliota ir kurią versiją naudojo nuotolinis rinkimas. Komitas yra aiškesnis perdavimas nei du įrankiai, redaguojantys vieną primontuotą darbo medį, nes komitas turi tapatybę, o primontavimas ne. Sugeneruota išvestis ir indekso duomenys taip pat turi turėti savininką, nes jie atkuriami iš šaltinio ir neturėtų keliauti taip, tarsi būtų šaltinis. Dvikryptis veidrodis be konfliktų taisyklių nėra darbo eiga, tai lenktynės.
Rinkti nuotoliniu būdu taip pat reikia kad nuotoliniame hoste būtų tinkama įrankių grandinė ir privačių priklausomybių kredencialai. VPN, leidžiantis pasiekti hostą, neskolina jam prieigos prie jūsų paskyros ir neįdiegia ten Xcode.
Patikrinkite kelią, prieš įsipareigodami darbo eigai
Patikrinkite nuotolinį hostą prieš projektuodami aplink jį, tada išmatuokite ryšį operacijomis, kurias darbo eiga iš tikrųjų atliks. Toliau pateiktos komandos tikrina įrankių grandinę, aktyvų kūrėjo katalogą ir failų stebėjimo kainą, kuri daro nuotolines darbo erdves skausmingas. Paskutinę paleiskite tinklo keliu, o ne vietoje.
xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain
Hostas be visos Xcode instaliacijos grąžina klaidą iš xcodebuild, ir tai yra įrankių grandinės, o ne tinklo problema. Kūrėjo katalogas rodo, kurią Xcode naudos rinkimas, o kelias, rodantis tik į komandinės eilutės įrankius, reiškia, kad programa neįdiegta. Saugyklos būsenos komandos laiko matavimas per primontuotą bendrinimą tiesiogiai atskleidžia kelionės pirmyn ir atgal kainą, o palyginimas su vietiniu paleidimu duoda skaičių, kuris svarbus. Jei ta spraga jau nemaloni, darbo eiga su primontuota darbo erdve bus blogesnė po tikru redaktoriumi.
Užsirašykite, kurią tvarką pasirinkote, kuri mašina valdo šaltinį ir kaip veikia perdavimas. Ta pastaba paverčia kitą įvedimą į darbą ar nešiojamojo kompiuterio pakeitimą konfigūracijos užduotimi, o ne tyrimu.