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 | |
CVS (ראשי תיבות של Concurrent Versions System - מערכת גרסאות מקבילית, השם המלא כמעט שאינו בשימוש) היא מערכת ניהול גרסאות מסוג שרת–לקוח שהייתה המערכת החופשית הראשונה מסוגה והפכה לפופולרית החל מראשית שנות ה-90 של המאה ה-20. כיום עדיין בשימוש נרחב אולם מוחלפת בהדרגה על ידי מערכות מתקדמות יותר כגון Subversion וגיט.
היסטוריה
[עריכת קוד מקור | עריכה]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].
קישורים חיצוניים
[עריכת קוד מקור | עריכה]אתר האינטרנט הרשמי של CVS (באנגלית)
- ההיסטוריה של CVS - תחילת הפרויקט
הערות שוליים
[עריכת קוד מקור | עריכה]- ^ ההכרזה על CVS בקבוצת הדיון mod.sources, 23 ביולי 1986
- ^ Dick Grune, Concurrent Versions System, a method for independent cooperation, IR 113, Vrije Universiteit, Amsterdam, pp. 9, 1986
- ^ [B. Berliner, CVS II: Parallelizing Software Development, Proceedings of the USENIX Winter 1990 Technical Conference, 1990
- ^ קובץ ה־NEWS מהפצת CVS
- ^ 1 2 אריק ריימונד, הבנת מערכות בקרת תצורה