CVS (ראשי תיבות של Concurrent Versions System - מערכת גרסאות מקבילית, השם המלא כמעט שאינו בשימוש) היא מערכת ניהול גרסאות מסוג שרת–לקוח שהייתה המערכת החופשית הראשונה מסוגה והפכה לפופולרית החל מראשית שנות ה-90 של המאה ה-20. כיום עדיין בשימוש נרחב אולם מוחלפת בהדרגה על ידי מערכות מתקדמות יותר כגון Subversion וגיט.

CVS
מפתח The CVS Team עריכת הנתון בוויקינתונים
מחזור חיים 19 בנובמבר 1990 – הווה (33 שנים) עריכת הנתון בוויקינתונים
גרסה אחרונה 1.11.23 (8 במאי 2008) עריכת הנתון בוויקינתונים
מערכת הפעלה מערכת הפעלה דמוית יוניקס עריכת הנתון בוויקינתונים
נכתבה בשפות C עריכת הנתון בוויקינתונים
סוג רישיון GNU General Public License, version 1.0 or later עריכת הנתון בוויקינתונים
קוד מקור https://savannah.nongnu.org/projects/cvs עריכת הנתון בוויקינתונים
www.nongnu.org/cvs/
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

היסטוריה עריכה

CVS פותחה על בסיס RCS, שהיא מערכת פשוטה לניהול גרסאות של קובץ בודד. החל משנת 1984 פיתח דיק גרון (Dick Grune) מעטפת ל-RCS שמספקת אפשרות לעבודה במקביל וכן במספר קבצים ביחד. הגרסה המקורית נכתבה כאוסף של סקריפטי Bourne Shell, ופורסמה ב-23 ביוני 1986 תחת השם CVS[1][2].

בהמשך שוכתבה CVS בשפת C על ידי בריאן ברלינר ואחרים. CVS נותרה בשימוש פנימי בעיקר של המפתחים עד שנת 1990, כשהיא הוצגה בכנס USENIX[3]. בנובמבר 1990 שוחררה גרסה 1.0 ברישיון GPL. בשנת 1994 נוספה תמיכה בעבודה מרוחקת: התחברות דרך TCP/IP לשרת שיכול להיות במחשב אחר[4].

האפשרות להוסיף שרת מרוחק שיספק גישה מהירה לגרסה הנוכחית של קוד המקור של התוכנה התבררה כתכונה מועילה. פרויקטי תוכנה שונים (לדוגמה: OpenBSD) שמו שרתים ונתנו גישת CVS אנונימית, כלומר פתוחה לכל מי שיכול להתחבר מהאינטרנט. השימוש ב־CVS הפך לסטנדרטי בין פרויקטי תוכנה חופשית[5]

בעיות עריכה

מערכת CVS משתמשת באוסף כלים קיימים (RCS, patch), אולם היא לא הצליחה להתמודד עם מספר בעיות שנבעו מתכנונה הבסיסי. מכיוון שכל המידע על הגרסאות נאגר על כל קובץ בנפרד, אין תמיכה פשוטה בפעולת הזזת קבצים. אין גם אפשרות להבטיח שפעולת commit תצליח או תיכשל כולה (atomic commit) - יכול להיות שפעולת commit שכוללת שינויים בכמה קבצים תיכשל באמצע ותשאיר חלק מהקבצים עם השינויים החדשים וחלק עם הגרסה הישנה[5].

קישורים חיצוניים עריכה

הערות שוליים עריכה

  1. ^ ההכרזה על CVS בקבוצת הדיון mod.sources, 23 ביולי 1986
  2. ^ Dick Grune, Concurrent Versions System, a method for independent cooperation, IR 113, Vrije Universiteit, Amsterdam, pp. 9, 1986
  3. ^ [B. Berliner, CVS II: Parallelizing Software Development, Proceedings of the USENIX Winter 1990 Technical Conference, 1990
  4. ^ קובץ ה־NEWS מהפצת CVS
  5. ^ 1 2 אריק ריימונד, הבנת מערכות בקרת תצורה