השיתוף נטען, העורך פותח את הקובץ, והבנייה עדיין רצה במחשב הנייד. שום דבר לא מציג שגיאה, וזה בדיוק מה שמבלבל. נתיב מרוחק אינו שרשרת כלים מרוחקת, ועורך שיכול לקרוא קובץ דרך טעינה יקרא בשמחה למהדר המקומי עליו. הפתרון הוא להעביר את סביבת העבודה, לא רק את הבתים.

תיקייה טעונה אינה סביבת עבודה

טעינה דרך SSH או SMB נותנת לכם נתיב. האם המהדר, מערכת הבנייה ומנפה השגיאות מגיעים מהצד המרוחק תלוי היכן העורך מחליט להריץ אותם. הגדרות רבות קוראות קבצים מרוחקים ומהדרות אותם מקומית, ואז נכשלות על קובץ כותרת שקיים רק בשרת.

התסמין עדין: הבנייה מצליחה עם תוצאות חלקיות, או נשברת על נתיב include שנראה נכון בעורך.

הוכיחו איזה מארח עונה

התחברו עם הפעלה מרוחקת אמיתית ולא עם טעינה, ואז הריצו שלוש פקודות לקריאה בלבד במסוף שההפעלה נותנת לכם. מדריך SSH של VS Code מתעד שמסוף בחלון מרוחק מחובר רץ על המארח המרוחק ושההפעלה עצמה נושאת את ניפוי השגיאות. קבלו קודם אישור לרכיבים המרוחקים אם הארגון מגביל אותם.

hostname מציין את המחשב שאתם עליו, pwd מראה היכן סביבת העבודה באמת נמצאת, ואילו command -v c++ מדפיס את המהדר שהמעטפת הייתה מריצה. כל שלוש התשובות צריכות לתאר את השרת, לא את הנייד.

הן אינן מוכיחות שהגרסה או תצורת הבנייה נכונות. השוו זאת להוראות הפרויקט עצמו כשלב נפרד.

עקבו אחרי שינוי אחד דרך בנייה וניפוי שגיאות

בצעו שינוי קטן בסביבת העבודה המרוחקת ושמרו אותו שם. הריצו את הבנייה המתועדת מאותה תיקייה ואשרו שהפלט משקף את השינוי שלכם ולא עותק ישן במקום אחר. לאחר מכן הפעילו את מנפה השגיאות דרך אותה הפעלה מרוחקת, כשנתיב הבינארי ותיקיית העבודה מצביעים לתוך עץ הבנייה של השרת. התאמת נתיבי המקור חשובה, כי מנפה שגיאות שממפה את השינוי שלכם לנתיב בנייד מנפה קובץ אחר.

אם יעד הניפוי מדווח על נתיבים שמתחילים בתיקיית הבית המקומית שלכם, תצורת ההפעלה עדיין חושבת מקומית.

תלויות הרשת נשארות במארח

משיכת חבילה, פעולת git או הרצת בדיקות שהתחילה במארח הבנייה משתמשת ברשת ובפרטי הכניסה של אותו מארח, לא בהפעלת ה-VPN של הנייד שלכם. העובדה שהנייד מגיע למראה חבילות פרטית לא אומרת דבר על יכולת השרת. אם הבנייה צריכה רישום, השרת צריך נתיב אליו, וזו שיחה על חומת אש, לא הגדרת עורך.

ההפך נכון גם ליישומי בדיקה. הגעה לשירות בשרת מהדפדפן שלכם היא חיבור נפרד שדורש נתיב פרטי מאושר או העברה מוגבלת, לא מאזין פתוח.

התנתקו בלי לאבד את העבודה

שמרו ובצעו commit, או לפחות תעדו את עץ העבודה, לפני שהחיבור נופל. הפעלת עריכה מרוחקת אינה מבטיחה שבנייה רצה או חיץ לא שמור ישרדו קטיעת רשת. לכל מה שחייב לשרוד מעבר להפעלה שלכם, השתמשו בזרימת העבודה או ההפעלה הנתמכת בפרויקט.

חלוקת העבודה אז ברורה: הנייד הוא ממשק, השרת מחזיק בסביבת העבודה ובשרשרת הכלים, וה-VPN מספק את הנתיב. העברת קבצים והעברת הבנייה הן שתי החלטות נפרדות.

מאמרים קשורים