პროექტის ქსელით გაზიარება 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-ს გამოიყენებს აწყობა, ხოლო ბრძანების ხაზის იარაღებზე მხოლოდ მიმთითებელი გზა ნიშნავს, რომ აპლიკაცია არ არის დაყენებული. საცავის მდგომარეობის ბრძანების დროის გაზომვა მიმაგრებულ გაზიარებაზე პირდაპირ ავლენს ორმხრივი მგზავრობის ღირებულებას, ხოლო ლოკალურ გაშვებასთან შედარება გაძლევთ იმ რიცხვს, რომელსაც მნიშვნელობა აქვს. თუ ეს სხვაობა უკვე არასასიამოვნოა, მიმაგრებული სამუშაო სივრცის ნაკადი ნამდვილი რედაქტორის ქვეშ უარესი იქნება.

ჩაწერეთ რომელი განლაგება აირჩიეთ, რომელი მანქანა ფლობს წყაროს და როგორ მუშაობს გადაცემა. ეს ჩანაწერი შემდეგ ონბორდინგს ან ლეპტოპის შეცვლას გამოძიების ნაცვლად კონფიგურაციის ამოცანად აქცევს.

დაკავშირებული სტატიები