Төслийг сүлжээгээр хуваалцах нь Xcode-г зөөдөггүй, учир нь програм таны Mac дээр үргэлжлүүлэн ажиллаж, серверээс төслийн өгөгдөл үргэлжлүүлэн асуудаг. Xcode-г алсын Mac дээр ажиллуулж, дэлгэцийг нь харах нь өөр зохион байгуулалт бөгөөд програм болон түүний файлууд хамт үлдэж, холбоос зөвхөн дэлгэц болон таны оруулгыг зөөдөг. Ямар нэг зүйлийг тохируулахаас өмнө аль нэгийг нь хүсэхээ шийдэх нь дараагийн төөрөгдлийн ихэнхийг шийддэг.

Энгийн тохиолдлуудыг гурван зохион байгуулалт хамарч, тэдгээр нь ажлын талбар хаана байх, аль машин компиляцлах зэргээр ялгаатай. Үргэлжлүүлэхийн өмнө хоёр асуултын хариултаа бичээрэй.

Xcode-г ажиллуулдаг машиныг нэрлээрэй

Эхний зохион байгуулалтад бүх зүйл локал: ажлын хуулбар, индекс, бүтээл бүгд таны Mac дээр байх бөгөөд сүлжээ зөвхөн агуулах болон хамаарлын урсгалыг зөөнө. Хоёрдугаарт төсөл Xcode-той хамт алсын Mac дээр үлдэх тул индексжилт болон компиляц файлуудын дэргэд явагдаж, холбоос дэлгэцийн агуулга болон товчлуурын даралтыг зөөнө. Гуравдугаарт засварлах нь локал явагдаж, эх сурвалжийг тодорхой шилжүүлсний дараа алсын хост дээр бүтээл ажиллана. Хүснэгт нь аль нь юу зөөдгийг нэрлэнэ.

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 ашиглахыг харуулж, зөвхөн командын мөрийн хэрэгсэлд заасан зам нь програм суулгагдаагүй гэсэн үг. Холбосон хуваалцал дээр агуулахын төлөвийн командын хугацааг хэмжих нь очих-буцах зардлыг шууд илрүүлж, локал ажиллагаатай харьцуулах нь чухал тоог өгнө. Хэрэв энэ зөрүү аль хэдийн тааламжгүй бол холбосон ажлын талбарын урсгал жинхэнэ засварлагчийн дор улам муу байх болно.

Аль зохион байгуулалтыг сонгосон, эх сурвалжийг аль машин эзэмшиж, шилжүүлэг хэрхэн ажилладаг талаар бичээрэй. Тэр тэмдэглэл дараагийн дасгалжуулалт эсвэл зөөврийн компьютер солихыг мөрдөн шалгалт биш, тохиргооны ажил болгоно.

Холбоотой нийтлэлүүд