ניהול גירסאות

zaske

New member
דוגמה נוספת

אני ועוד מישהו עבדנו על שני פיצ'רים, אבל למעשה הפיצ'ר שלי היה תלוי בשלו.
יצרתי branch מקומי אצלי שמסונכרן מול ה branch שלו.
הוא סינכרן את ה branch שלו מול master .
כל כמה זמן כשהוא הרגיש שהוא התקדם למשהו יציב, אני ביצעתי rebase מולו, וככה היה לי את הקוד העדכני שלו , ומעל זה את הקוד של הפיצ'ר שלי.

דוגמא נוספת - code reviews - אתה יכול לחלק את העבודה שלך ל patches קטנים יחסית - למשל ב patch הראשון - שינויי סיכמת דטה בייס + DAL
ב patch השני - שינוי BLL
בשלישי - שינוי REST-API
ברביעי - שינוי GUI

נניח אני נותן לך הערה על החלק השלישי - אתה יכול לעשות rebase אצלך כזו, שאתה "עוצר" בצורה זמנית אחרי השלישי. אתה עושה את התיקון המתבקש, עושה לו commit - והנה יש לך עכשיו חמישה , אבל אותי לא מעניין לראות שהשלישי התפצל לשניים, אז אתה עושה fixup למספר 4 (כלומר, ממזג אותו לתוך מספר 3), ושולח את הרביעיה המתוקנת ל review מחודש.
מאוד מאוד נוח ומקל על code review , לדעתי.
 

h a j b i

New member
הגישה שלך היא באמת האידיאלית והנכונה

מוצר אחד, קוד אחד, אמת אחת.
גם אני הייתי מעדיף ככה אבל זה לא עומד במבחן המציאות.
&nbsp
כשיש לך מספיק מפתחים ואתה עובד במוד של CI/CD אז אם אתה לא רוצה לשבור את ה master (לשבור זה אומר שנכשלו טסטים כלשהם) שעשוי לעלות ל PROD בכל רגע.
יהיה לך הרבה יותר קל לעבוד עם Branchים לכל Feature שאפשר לעשות להם deploy לסביבה ספציפית, אפשר להריץ עליהם את ה CI, לראות שהכול בסדר ורק אז לעשות merge ל - master. הסיכוי שהראשי ייפול הופך להיות מאוד קטן ואתה מוכן בכל רגע לעלות ל - PROD.
&nbsp
&nbsp
אצלנו למשל אנחנו מעלים גרסה ל - PROD מידי שבועיים ועובדים די קשה בשביל זה. עם המעבר לעבודה עם Branches (ועוד כמה שינויים כמו להוריד את ה cycle time של ה CI) אנחנו נוכל להעלות גרסא מידי יום.
&nbsp
הכל ניתן להשגה גם עם SVN, תיאומים אינסופיים ונהלי עבודה מחמירים אבל כאמור, זה לא תמיד עומד במבחן המציאות.הבעיה עם GIT שזה דורש זמן ללמוד ולהבין אבל זה לא בשמיים, גם אנשים שחשבו בעבר שהם "איבדו" את הקוד כולל אני, מספיק שיש בנאדם אחד בחברה שמבין איך GIT עובד כמו שצריך ותוך דקות ספורות משחזרים לך הכל בלי בעיה. תוך זמן מסויים (תלוי בכמות המפתחים) כולם מתחילים להבין וליישר קו.
&nbsp
אני למשל עובד על פרויקט בעייתי שיש 2 דרכים לעשות אותו, אחת עם הרבה שינוי של קוד לגסי וסיכון משמעותי אבל נכון יותר וטוב יותר לעתיד ואילו השני הפוך. אני עובד על שני Branchים ועושה את הפרויקט בשני הדרכים. אני עובר בקלות מאחד לשני, עושה Deploy מידי פעם לגרסת integration לבדוק משהו או מריץ על אחד מהם את ה CI. החלטתי אסופית איזה מהם אני רוצה, זורק את ה Branch שאני לא צריך, עושה merge לזה שאני רוצה לראשי וזהו.
 

marvin2

New member
במידה והוא מכיר את TFS.. אפשר להישאר איתו

MS נותנים אינסטאנס שלו בחינם, עד חמישה מפתחים ב visualstudio.com.
 
למעלה