Loading AI tools
מוויקיפדיה, האנציקלופדיה החופשית
בקרת גרסאות (version control או source control) משמעותה מעקב ובקרה אחר גרסאות מרובות של אותה יחידת מידע.[1] מערכות בקרת גרסאות מאפשרות עבודה במקביל של מספר אנשים על אותו הפרויקט באופן יעיל.[2] המילה "גרסאות" מתייחסת לתוכן ולא למספר הגרסה.
ערך ללא מקורות | |
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים. | |
הנדסת תוכנה |
---|
ערך זה שייך לקטגוריית הנדסת תוכנה |
פעילויות ושלבים |
דרישות • ניתוח • אפיון • ארכיטקטורה • עיצוב • תכנות • ניפוי שגיאות • בדיקה • אימות • בנייה • פריסה • תפעול • תחזוקה |
מתודולוגיות |
זריזות • מפל המים • תכנת ותקן • Crystal Clear • Scrum • Unified Process • Extreme Programming • אינטגרציה רציפה • DevOps |
תחומים תומכים |
ניהול פרויקטים • ניהול תצורה • תיעוד • הבטחת איכות • Profiling |
כלים |
מהדר • מקשר • מפרש • IDE • ניהול גרסאות • אוטומציית בנייה |
לרוב, שימוש בבקרת גרסאות נעשה בהנדסה, בבניית אתרי אינטרנט ובפיתוח תוכנה לניהול פיתוח מתמשך של פרויקטים דיגיטליים, דוגמת קוד מקור של יישום, משאב מערכת אמנותי דוגמת תרשים או דגם אלקטרוני, ומידע קריטי אחר שהעבודה עליו עשויה להתבצע בידי אדם בודד או צוות אנשים ולאורך זמן.
היכולת הבסיסית שמספקת מערכת ניהול גרסאות היא השוואת הגרסה הנוכחית לגרסאות קודמות של התוכן וחזרה אליהן במידת הצורך. "מעקב אחרי שינויים" במסמכי מיקרוסופט וורד הוא דוגמה למערכת כזו. אולם לפיתוח תוכנה נדרשות יכולות מורכבות יותר: הפיתוח נעשה על ידי צוותים שונים שצריכים לעבוד במקביל על אותם הקבצים ונדרשת דרך לנהל גרסאות שונות של אותה תוכנה ואף למזג שינויים כתוצאה של עבודה במקביל.[1]
כשתוכנה מפותחת ומופצת, לרוב נוצר מצב שבו גרסאות רבות של אותה התוכנה נמצאות בשימוש באתרים שונים, ושמפתחי התוכנה ממשיכים לעבוד במקביל על עדכונים ושדרוגים. באגים ושאר סוגיות הקשורות לתוכנה פעמים רבות קיימים רק בחלק מן הגרסאות. לכן, במטרה לאתר ולתקן באגים, חיונית עבור מנפה השגיאות היכולת לאחזר ולהריץ גרסאות שונות של התוכנה, וכך לקבוע באיזו גרסה/גרסאות הבעיה קיימת. אפשרי גם שיהיה צורך לפתח במקביל שתי גרסאות של תוכנה - לדוגמה, כאשר בגרסה אחת תוקנו הבאגים, אך חסרות בה תכונות חדשות, בעוד שבגרסה אחרת מצויות התכונות החדשות, אך הבאגים טרם תוקנו. הערך הזה מתייחס לתוכן עצמו ולא למספרי הגרסה שמקבלות גרסאות שונות של התוכנה.
ברמה הפשוטה ביותר, מפתחים יכולים להחזיק עותקים כפולים של גרסאות שונות של התוכנה, ולמספר אותם כראוי. גישה פשוטה זו הייתה בשימוש בפרויקטים רבים של תוכנה. שיטה זו יכולה לעבוד, אך היא לא יעילה, היא מצריכה משמעת עצמית רבה אצל המפתחים, ופעמים רבות מובילה לשגיאות. כתוצאה מכך, פותחו מערכות שמעבירות לצורה מכנית חלק מתהליכי ניהול הגרסאות או את כולם.
כאמור, יש גם מערכות מורכבות יותר של בקרת גרסאות בתחומים אחרים. לדוגמה, בתחום ההנדסה פותחה מערכת ניהול גרסאות מתוך תהליכים פורמליים, שמבוססים על מעקב אחר גרסאות של שרטוטים טכניים. כתוצאה מכך, הייתה בבקרה זו היכולת לחזור לכל מצב קודם של העיצוב, למקרים שבהם שלב מתקדם של העיצוב נתקל במבוי סתום או מבוטל מכל סיבה שהיא[דרוש מקור]. מפתחי תוכנה משתמשים לעיתים בבקרת גרסאות להחזקת תיעוד וקובצי קונפיגורציה, בנוסף לקוד מקור. בתאוריה, בקרת גרסאות עשויה להיות מיושמת עבור כל סוג של תיעוד מידע. בפועל, הטכניקות והכלים המתוחכמים ביותר לניהול גרסאות כמעט ולא שימשו מחוץ לתחום פיתוח התוכנה, אף על פי שיכלו לספק יתרונות גם בתחומים רבים אחרים. עם זאת, הם מתחילים להיכנס לשימוש לשם מעקב אלקטרוני אחר שינויים בקובצי CAD, בהחליפם יישום אלקטרוני "ידני" של ניהול גרסאות מסורתי[דרוש מקור].
כיום, בפיתוח תוכנה, מערכות בקרת גרסאות מצויות כמעט בכל פרויקט של פיתוח תוכנה[דרוש מקור], כאשר מערכת בקרת הגרסאות הפופולרית ביותר היא גיט.[3]
במערכות פשוטות (RCS, מעקב אחר שינויים במסמכי Microsoft Word, ועוד) כל המידע נמצא במסמך עצמו או צמוד אליו. מערכות מורכבות יותר מאפשרות למשתמשים ממקומות שונים לעבוד (לרוב במקביל) על המידע.
ברוב הפרויקטים של פיתוח תוכנה, מספר מפתחים עובדים על תוכנה אחת באותו זמן. אם שני מפתחים מנסים לשנות את אותו קובץ באותו זמן, ללא כל שיטה לניהול גישה לקובץ, המפתחים עלולים לבטל זה את עבודתו של זה. רוב מערכות ניהול הגרסאות פותרות עניין זה באחת משתי דרכים:
במערכת בקרת גרסאות מבוזרות אין אפשרות לבדוק נעילה על הקובץ, ולכן כולן משתמשות במיזוג (Merge) שינויים, אבל במערכות האלו קיימות מגוון אפשרויות לעקוב אחר שינויים שבוצעו על ידי משתמשים שונים, להשוות בין השינויים, ולהחליט את אלו שינויים לקבל ואיך בדיוק לבצע את המיזוג בין השינויים. המיזוג יכול להתבצע בצורה אוטומטית או ידנית. לדוגמה: מספר משתמשים ביצעו שינויים במסמך, כל השינויים חשובים אבל צריך למזג אותם בצורה חכמה, שורה שכתב משתמש אחד ואחר כך שורה שכתב משתמש שני, שוב שורה שכתב המשתמש הראשון ואז שורה שכתב משתמש שלישי, וכן הלאה - ניתן לבצע כזה מיזוג ואף מיזוגים מסובכים יותר.
רוב תוכנות בקרת הגרסאות משתמשות בשיטת דחיסה המכונה "delta compression", השומרת רק את ההבדלים שנעשו בין גרסאות קבצים רציפות. דבר זה מאפשר נפח אחסון כולל קטן יותר של מאגר הגרסאות.
המאגר שבו נשמרים קובצי המידע ההיסטוריים והנוכחיים - לרוב בשרת. לעיתים משתמשים במילה depot (מחסן).
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.