פוסט זה מסכם עשרות ימי תמיכה במשתמשי git ו subversion שנתקלו בבעיות עם ה VCS שלהם.
יותר מדי אנשים בוחרים היום להשתמש בכלי gui ומעטפות על git ו subversion , בעוד כלי ה gui יכולים להראות פתרונות מדהימים להכל, וFoolproof בכל יום תמיכה אני מגלה עוד ועוד דברים שמראים שהם לא מתאימים לכל דבר.
במקרה הפשוט של git למשל (כנראה מערכת ה VCS הפופלארית ביותר שקיימת ) :
בחלק מהממשקים הגרפים (למשל Tortoise ו github desktop ) אין הצגה למצב של deatched head , אנשים שוכחים לבודק ידנית על איזה branch הם נמצאים והופ הם תקועים ולא יכולים לעשות push וצריך לבצע מעבר ידני (ב git bash ) .
אם אנחנו עובדים ב git ללא submodules , הסיכויי שלכם במסלול תקין להגיע ל deatched head ללא כוונה שואף לאפס (זה לא המצב כשיש שגיאות או שימוש רצויי בו אתם רוצים להגיע ל deatched head).
במצב גרפי ? הסיכוי שלכם להבין שאתם נמצאים ב deatched head ללא התראה כמעט לא קיים (קיימת אזהרה ב tortoise git שמציעה לכם לעבור ל branch חדש אבל זה ממש לא ברור).
עובדים עם submodules ? בהכרח אתם תהיו במצב של deatched head כי זה המצב התקין , הבעיה בכלי הממשק הגרפי שמשתמשים לא ישימו לב , ויעשו commit ב deatched head או במקרה הטוב ייצרו branch חדש ואחרי זה יינסו לתקן (והנה 10 -20 דקות שהלכו לאיבוד)
ואם כבר מדברים על submodules , כמו שכולם יודעים בפרוייקט גדול בו יש submodules כשצריך למשוך את הגרסה העדכנית ביותר של הכל צריך לבצע :
git submodule update --merege --remote --recursive ולא git pull --recurse-submodules
עושים זאת כי תמיד יש סיכויי שאיזה submodule עבר עידכון אבל הsubmodule העליון לא עודכן . בכלים כמו toritoisegit ו github desktop אין אינדיקציה ברורה לפעולה הזאת (או יכולת להבדיל ביניהן).
הייתה שגיאה ב rebase , וזה קורה הרבה במיוחד כאשר מקבלים early EOF במהלך pull כשאר המערכת מוגדרת לבצע rebase כברירת מחדל.
עושים זאת כי תמיד יש סיכויי שאיזה submodule עבר עידכון אבל הsubmodule העליון לא עודכן . בכלים כמו toritoisegit ו github desktop אין אינדיקציה ברורה לפעולה הזאת (או יכולת להבדיל ביניהן).
הייתה שגיאה ב rebase , וזה קורה הרבה במיוחד כאשר מקבלים early EOF במהלך pull כשאר המערכת מוגדרת לבצע rebase כברירת מחדל.
רוצים לעבוד בצורה רגועה , בלי לחץ ועם סיכוי נמוך לעשות טעויות ? תעבדו ב command line.
אין תגובות:
הוסף רשומת תגובה