Etä-Mac Xcodea varten: paikallinen koonti, etäkoonti vai näytön jakaminen?
Liitetty työtila ja etäinen Xcode siirtävät eri dataa. Päätä, missä lähde, hakemisto ja koonti sijaitsevat, ja mittaa sitten edestakaiset kierrokset.
Projektin jakaminen verkon yli ei siirrä Xcodea, koska sovellus jatkaa toimintaansa Macillasi ja pyytää palvelimelta edelleen projektin tietoja. Xcoden ajaminen etä-Macilla ja sen näytön katseleminen on toinen järjestely, jossa sovellus ja sen tiedostot pysyvät yhdessä ja yhteys kuljettaa vain näytön ja syötteesi. Sen päättäminen, kumman haluat, ennen kuin mitään määritetään, ratkaisee suurimman osan myöhemmästä sekaannuksesta.
Kolme järjestelyä kattaa tavalliset tapaukset, ja ne eroavat siinä, missä työtila sijaitsee ja mikä kone kääntää. Kirjoita vastauksesi molemmista kohdista ennen jatkamista.
Nimeä kone, joka ajaa Xcodea
Ensimmäisessä järjestelyssä kaikki on paikallista: työkopio, hakemisto ja koonti sijaitsevat Macillasi, ja verkko kuljettaa vain tietovaraston ja riippuvuuksien liikennettä. Toisessa projekti pysyy etä-Macilla Xcoden kanssa, joten hakemistointi ja kääntäminen tapahtuvat tiedostojen vieressä, kun yhteys kuljettaa näytön sisältöä ja näppäinpainalluksia. Kolmannessa muokkaus tapahtuu paikallisesti ja koonti ajetaan etäisäntäkoneella nimenomaisen lähteen luovutuksen jälkeen. Taulukko nimeää, mitä kukin niistä siirtää.
| 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 |
Lue ensin keskimmäinen sarake, koska se päättää, mihin viat ilmestyvät. Työnkulku, jonka lähde on etäinen, epäonnistuu, kun yhteys on hidas, kun taas etäkääntäjällä varustettu työnkulku epäonnistuu, kun luovutus on epäselvä. Vain kolmas tekee sinusta vastuullisen molemmista.
Laske kierrokset, älä megatavuja
Editori ja hakemistoija tekevät paljon pieniä tiedostotoimintoja, ja jokaisesta tulee edestakainen kierros, kun tiedostojärjestelmä on etäinen. Se tekee liitetystä työtilasta latenssille herkän tavalla, jolla yksi suuri kopio ei ole, minkä vuoksi tiedostonsiirron ajoittaminen ei kerro sinulle juuri mitään siitä, miltä työnkulku tuntuu. Etänäytöllä on päinvastainen profiili: se siirtää jatkuvaa virtaa ja kestää läpäisyä paremmin kuin viivettä. Kahden vertaaminen yhdellä luvulla tuottaa itsevarman väärän vastauksen.
Kumpikaan järjestely ei ole luonnostaan nopein. Oikea valinta riippuu työstä, jota todella teet, joten seuraava askel on kokeilla sitä työtä eikä vertailukohtaa.
Tee lähteen luovutuksesta nimenomainen
Kun molemmilla koneilla on työkopio, päätä, kumpi on valtuutettu ja mitä versiota etäkoonti käytti. Commit on selkeämpi luovutus kuin kahden työkalun muokkaama yksi liitetty työpuu, koska commitilla on identiteetti eikä liitoksella ole. Luotu tuotos ja hakemistotiedot tarvitsevat myös omistajan, koska ne rakennetaan uudelleen lähteestä eikä niiden pitäisi matkustaa kuin ne olisivat lähde. Kaksisuuntainen peili ilman konfliktisääntöjä ei ole työnkulku, se on kilpailu.
Etäkoonti vaatii myös että etäisäntäkoneella on oikea työkaluketju ja yksityisten riippuvuuksien tunnistetiedot. VPN, joka päästää sinut isäntäkoneelle, ei lainaa sille tilisi käyttöoikeutta eikä asenna Xcodea sinne.
Tarkista polku ennen kuin sitoudut työnkulkuun
Vahvista etäisäntäkone ennen sen ympärille suunnittelua ja mittaa sitten yhteys toiminnoilla, jotka työnkulku todella suorittaa. Alla olevat komennot tarkistavat työkaluketjun, aktiivisen kehittäjäkansion ja tiedostojen tarkkailun kustannuksen, joka tekee etätyötiloista kivuliaita. Aja viimeinen verkkopolkua pitkin, älä paikallisesti.
xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain
Isäntäkone, jolla ei ole täyttä Xcode-asennusta, palauttaa virheen xcodebuildista, ja se on työkaluketjun ongelma eikä verkon ongelma. Kehittäjäkansio näyttää, mitä Xcodea koonti käyttää, ja polku, joka osoittaa vain komentorivityökaluihin, tarkoittaa, että sovellusta ei ole asennettu. Tietovaraston tilakomennon ajoittaminen liitetyn jaon yli paljastaa kierroksen kustannuksen suoraan, ja vertaaminen paikalliseen ajoon antaa luvun, jolla on merkitystä. Jos tuo ero on jo epämiellyttävä, liitetyn työtilan työnkulku on pahempi todellisen editorin alla.
Kirjaa, minkä järjestelyn valitsit, mikä kone omistaa lähteen ja miten luovutus toimii. Se muistiinpano tekee seuraavasta perehdytyksestä tai kannettavan vaihdosta määritystehtävän tutkimuksen sijaan.