הסיבה שהמערכת נשברת במעבר בין מכשירים היא כמעט תמיד שכבת הסנכרון, ולא הסוכן: כלים כמו Drive, Dropbox או iCloud מסנכרנים בשיטה של מרוץ העתקה, וכששני מכשירים נוגעים באותם קבצים בזמן קרוב, גרסה חצי-כתובה נוחתת על השנייה ומשבשת אותה. הפתרון שעובד הוא להעביר את הסנכרון ל-git, שלא מעתיק קבצים אלא מנהל גרסאות וממזג שינויים במכוון, כך שאותו מוח אחד חי בבטחה על כל מכונה.
הכספת של Obsidian סובלת מזה הכי הרבה, כי היא בנויה מהמון קבצים קטנים ועוד אינדקס נסתר שצריך להישאר מסונכרן איתם, וכשההעתקה נכנסת באמצע כתיבה, האינדקס מצביע על מצב שכבר לא קיים. אצלנו עברנו ל-git בדיוק אחרי שראינו שהדרייב "מקלקל קבצים קצת" (במילים של תום), וחבר קהילה איבד יום שלם של עבודה כשסנכרון הענן דרס לו כספת שלמה תוך כדי עריכה משני מכשירים במקביל.
git עושה שלושה דברים שהעתקה עיוורת לא יודעת: הוא שומר צילום מצב בכל שמירה, הוא ממזג שינויים משני מכשירים בלי לדרוס אחד את השני, וההיסטוריה המלאה שלו היא גם כפתור ה-undo שלכם, כי כל גרסה שמורה וניתנת לשחזור בדיוק לנקודה. המהלך המעשי הוא אחד: מאתחלים git על תיקיית המערכת פעם אחת, ומאותו רגע המכשיר השני מושך את השינויים לפני שמתחילים לעבוד ושומר אותם בסוף, במקום להישען על סנכרון שרץ לבד מאחורי הגב.
הטלפון הוא סיפור נפרד, כי אסור לו להיות עורך שני. במקום לגעת בקבצים הגולמיים מהמסך הקטן, מחברים אותו דרך גשר צ'אט (למשל בוט טלגרם) שמדבר עם אותו מוח, כך שהטלפון הופך לשלט רחוק ולא למכונת עריכה שנייה. ככה תום מריץ חלק מהלילות שלו מהכיס בזמן שהמערכת יושבת במקום אחד יציב, וזה גם למה שאף פעם לא נשמע ממנו "הטלפון שבר לי את הכספת" (חיוך).
הכלל שאני עובד לפיו: מוח אחד, הרבה חלונות. git הוא מסגרת החלון ששומרת על התצוגה מסודרת, לא מכונת צילום שמדפיסה עותק נוסף בכל פעם שנכנסים ממקום אחר.
פרומפט במתנה
אני עובד על מערכת הסוכנים שלי מכמה מכשירים (מחשב עיקרי, לפעמים מחשב שני, והטלפון).
עזור לי להפוך את git לשכבת הסנכרון, במקום Drive או Dropbox או iCloud:
1. אתחל מאגר git על תיקיית המערכת, והוסף .gitignore שמחריג קבצים זמניים ואינדקסים נסתרים.
2. הסבר בשתי שורות איך למשוך את השינויים במכשיר השני לפני תחילת עבודה, ואיך לשמור בסוף.
3. הצע דרך אחת לגעת במערכת מהטלפון בלי לערוך קבצים ישירות (גשר צ'אט), ומה הסיכון בכל אפשרות.





