יום שלישי, נובמבר 10, 2020

עזבו את ה GUI לנפשו

פוסט זה מסכם עשרות ימי תמיכה במשתמשי 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 כברירת מחדל.

רוצים לעבוד בצורה רגועה , בלי לחץ ועם סיכוי נמוך לעשות טעויות ? תעבדו ב command line.

אין תגובות: