באיזו מערכת Source Control / Version Control אתם משתמשים?

BravoMan

Active member
באיזו מערכת Source Control / Version Control אתם משתמשים?

רגע לפני סגירת הפורום, ובהשראת השרשור הקודם על GIT, סקר קצר: באיזו מערכת ניהול קודם משתמשים אצלכם בארגון ו\או באיזו מערכת אתם מעדיפים להשתמש? אני כאמור אוהב את GIT הן לפרויקטים אישיים, והן לפרויקטים ארגוניים. אצלנו עובדים עם TFS שהוא מוצר מיקרוסופטי, והבחירות בו הן מאגרי GIT או מאגרי TFVC מערכת מונוליטית של MS. יש לנו צוותים שמפתחים ב-NET. והם משתמשים ב-TFVC כהרגל. צוותי המובייל, וצוותי WEB שעובדים על LAMP stack משתמשים ב-GIT. באופן כללי, אני חושב שהקונספט של מערכת מבוזרת כמו git ו-mercurial הוא הרבה יותר חזק ונוח מאשר מערכות מונוליטיות סטייל subversion ו-TFVC.
 

סימבה8881

New member
אתה במקרה עובד על לינוקס?

ממה שיצא לי לראות ה UI שיש לגביו קונצנזוס הוא דווקא source tree, אבל הוא לא עובד על לינוקס. &nbsp אם כבר לינוקס, ה plugin של תוכנות Jetbrains מאד מאד נוח וידידותי. &nbsp
 

bismark1

New member
כן

בזמנו כשניסיתי את sourcetree על חלונות הוא הרגיש לי קצת כבד. כן jetbrains זה אחלה וגם vscode + gitlens לא רע בכלל. gitkraken הוא cross-platform אגב.
 
ב 10 השנים האחרונות רק git
לפני זה: SourceSafe, CVS, SVN
&nbsp
בשני מקומות העבודה האחרונים (הנוכחי והקודם) רק git
 

סימבה8881

New member
אני באמת חושב שגיט זה קונצנזוס בתעשיה

לצורך העניין, אני לא מצליח להיזכר במקום שהתראיינתי בו שלא השתמשו בגיט &nbsp
 

ipv6

Member
בחברות הגדולות לא משתמשים

לפחות מחלקות מסוימות\רב המחלקות. מחלקות אחרות כן.. בגוגל ופייסבוק יש הרבה כאלה שלא עובדות עם GIT כי הוא לא יודע להתמודד עם REPO-ים בסדר גודל כזה (הרבה הרבה הרבה יותר גדול מהקרנל של לינוקס) מיקרוסופט אוהבים את הכלים שלהם (TFS?). https://en.wikipedia.org/wiki/Monorepo
 

סימבה8881

New member
אז עם איזה כלי לניהול גרסאות עובדים גוגל ופייסבוק כשיש להם

repo מטורפים? &nbsp
 

סימבה8881

New member
מה שאני לא מבין זה שאם הכלים האלה כ״כ מוצלחים

למה גוגל לא מוציאה אותה כ open source כמו שהיא הוציאה מוצרים אחרים? &nbsp
 

ipv6

Member
מי אמר שזה מוצלח?

זה דברים שפותחו מתוך צורך. לגבי למה לא מוציאים ל-OS, קודם יכול להיות שקומפוננטות מסוימות כן הוציאו. שמעתי בזמנו שהFB תורמים\תרמו לא מעט ל-HG. זה לא תוכנה שאתה תוכל לעשות לה apt-get ויש לך את זה. זה eco system שלם שעובדים עליו ישירות לכל הפחות עשרות אנשים. שמאד coupled עם תשתיות אחרות של החברות למשל distrbuted storage פנימי ועוד. חלק מהדברים האלה כנראה לא רוצים להוציא החוצה. בכל מקרה כמוצר שלם זה לא רלוונטי לשום בן אדם פרטי ובטח שלא ל99.9% מהחברות. אם הגעת למצב שיש לך כל כך הרבה קוד שהוא לא נכנס במספר של repo-ים ב-source control קונבנציונלי, אז כנראה שיש לך מספיק משאבים לפתור את הבעיה בעצמך.
 

BravoMan

Active member
אבל הם כן מנהלים פרוייקטים ענקיים ב-GIT, לפחות

אלה שפונים כלפי חוץ, כמו AOSP. &nbsp מדובר בקוד ענק, כמה ג'יגה, שמורכב למעשה ממספר מאגרי גיט נפרדים, ובסה"כ מצורף אליו סקריפט Python בשם repo שמסדר משיכה וסנכרון של כולם ביחד. &nbsp תרם ראיתי את ההרצאה, אבל האם זה אומר שהם מנהלים את קוד המערכת בשתי מערכות ניהול גרסאות שונות ואיכשהו מסנכרנים בניהן?
 

קלייטון.ש

Well-known member
מעולם לא השתמשתי בזה אישית

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

הפרבולה

New member
מסכים איתך, אין צורך בכלים האלו בחברה קטנה

בד"כ כל אחד אחראי על הקוד שלו, וגם אם כמה מתכנתים נוגעים באותו קוד לא בעיה לתאם פנים מול פנים בין המתכנתים מי באותו רגע עושה שינויים. גיבויים של גרסאות ישנות יש לעשות לכל מקרה. מה שכן אנו משתמשים בכלים להשוואת קבצים כמו למשל Beyond Compare כדי לעשות רוויו על השינויים שמישהו אחר ביצע בקוד . &nbsp אם לקוח מבקש פיצר נוסף על גירסה ישנה שיש ברשותו הוא מקבל תמיד את הגירסה האחרונה + הפיצר החדש.
 

bismark1

New member
זה שימושי גם כשעובדים לבד

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

BravoMan

Active member
מזה חששתי...

הייתי סקרן אם אצלכם משתמשים ב-"שיטת התיקיות", אז חיכיתי שתגיב בשרשור הזה. &nbsp מה שכתבת פה די מאשר את החששות שלי לגבי איכות החברה ואיכות הקוד אצלכם
&nbsp האמת שגם אני התחלתי בחברה קטנה שבה שמרו גרסאות ישנות של פרויקט בקבצי ZIP. למעשה, הפרקטיקה הזו נמשכה שם כמה שנים טובות בתקופה שהייתי שם, ואף אחד מהמפתחים לא התלונן. &nbsp במבט לאחור, זה מסביר בדיוק כמה חסרי ניסיון וחסרי הבנה היינו... &nbsp סנכרון בין מספר מתכנתים הוא רק פיצ'ר אחד ולא הראשי של המערכות האלה. הפיצ'ר החשוב ביותר הוא שמירה מסודרת, במקום ספציפי, של כל גרסאות הקוד בצירוף תיעוד שמתאר כל שינוי ושינוי. &nbsp מי עשה מה, מתי ולמה. &nbsp כשלקוח עם גרסה ספציפית מתלונן על הבעיה והבוס שלך בא ושואל - תגיד, מה נשתנה בגרסה X ביחס ל-Y - מה אתה ואמר לו? "חכה, אני אמצא איזה את old3.zip אריץ beyond compair עליו מול התוכן של old.zip"
&nbsp מה קורה אם אתה באמצע עבודה על גרסה חדשה, ולקוח מתלונן על באג קריטי? איך עושים הוט פיקס? &nbsp אותה חברה קטנה שבה התחלתי לא זזה מילימטר בלי GIT, בערך משנת 2010 וזה מאוד מאוחר. וזו חברה בה כל פרויקט מטופל ע"י אדם בודד. &nbsp בשביל הסדר, בשביל התיעוד, בשביל גיבוי קוד מסודר, היסטוריה, קלות בהוצאת תיקון באגים, גרסאות וכו'. &nbsp אגב, מה קורה כשצריך להעביר פרויקט למתכנת חדש שהגיע לחברה? מה קורה אם מתכנת עוזב? &nbsp שמע, לפי התיאור הזה , דיסקטים 5.25 זו טכנולוגיה מתקדמת בשבילך, אני חושב שאתם עדיין בעידן קלטות אודיו
&nbsp אבל ברצינות - קלייטון די בוודאות לא כתב שורת קוד מימיו, אבל אני די בטוח שאתה באמת מתכנת. איך עוד לא ניסית משהו שהוא חינמי, וסטנדרט בתעשייה? אף פעם לא היו לך צרות שהכריחו אותך לחפש קוד מסוים? &nbsp היום אני מכיר אפילו סטודנטים ששומרים את העבודות שלהם ב-GIT, כדי לעקוב אחרי התקדמות, בין היתר כי זה מאפשר להם להוסיף שינוי לקוד לבדיקה, לראות אם הוא טוב או לא, ואם לא טוב לחזור למה שעבד בקלות.
 
למעלה