CVS

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

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

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

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

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

קישורים חיצוניים 
 
 ההיסטוריה של CVS - תחילת הפרויקט

הערות שוליים 

מערכות ניהול גרסאות
תוכנה חופשית